100行程式碼處,二維陣列的遍歷!!
阿新 • • 發佈:2020-12-16
技術標籤:jAVA
package text;
//陣列--將一些資料按照線性順序連續儲存的序列,
//陣列是效率最高的 儲存和訪問元素的一種方式
public class Demo1214 {
public static void main(String[] args) {
Demo1214 d = new Demo1214();
d.f1();
d.function3();
d.function();
d.function2();
//[]裡面是陣列長度,{}裡面是元素
int t1 = 0;
// 這種形式不提倡---[]在後面不提倡
int array11[ ] = new int[10]; // 預設值==0哦
for (int i = 0; i < array11.length; i++) { //array11.length=10
System.out.print(array11[i]);
System.out.print(' ');
}
int array21[] = new int[] {1,2,3,4,5,6};
for (int i = 0; i < array21.length; i++) { //array21.length=6
System.out.println(array21[i]+"can" );
}
int array31[] = {4,5,6,7,8}; //這種用法只能在定義時使用
// 三種初始化賦值方式
int []array12 = null;
//這種是::是變數,有物件 只要 new 了,就有物件
//這種定義方式 屬於 :是變數,沒物件
double[] array13 ;
String[] array14 ;
Integer[] array16;
// 陣列基本特點:
//1-元素型別遵循陣列型別(基本資料型別,引用型別) int型陣列內的元素也只能是int型···
//2-初始化賦值後陣列長度固定不變
//陣列變數--"array14、array13", 一定是 引用型別
//預設值為 null
System.out.println(array12);
int[] array15 = new int[] {}; // 有物件,長度為零。
// System.out.println(array15[0]); //報錯 ,因為長度為零
}
void function() {
//陣列是簡單的線性序列,所以訪問速度快、
//陣列中每個元素擁有一個索引值,通過索引值訪問該元素
//索引值取值範圍[0,length)從0開始,到最大長度-1
int[] array = new int[3];
array[0] = 100;
int t1= array[0];
System.out.println(t1);
System.out.println(array.length);
int i=0;
while (i<array.length) {
System.out.println(i+" "+array[i]);
i++;
System.out.println("---------------------");
}
for (int k : array) {
System.out.println(k);
}
}
void function2(){
int[] a1 = new int[] {1,2,3,4,56}; //引用型別 a1 儲存元素的地址
int[] a2 = a1; // a2 引用 a1
int[] a3 = new int[] {1,2,3,4,56};
//引用型別變數(例如這裡的a1、a2、a3),實質上儲存的是 指向記憶體中的一個地址,Java中稱之為 引用
for (int i = 0; i < a1.length; i++) {
a2[i]++;
System.out.println(a1[i]+" "+a2[i]+" "+a3[i]);
}
}
// 例子:
void function3() {
int[] a4 = new int[] {1,2,3,4,5};
function5(a4); //a4陣列沒有變化
for (int i : a4) {
System.out.println(i);
}
System.out.println("-------下面是 新的 a4-----");
function4(a4); //a4發生變化
for (int i : a4) {
System.out.println(i);
}
}
void function4(int[] a5) {
for (int i = a5.length-1; i >=0; i--) {
a5[i] *=2;
}
}
void function5(int[] a5) {
a5 = new int[] {7,8,9,10}; //這個重新被定義陣列a5改變
for (int i = a5.length-1; i >=0; i--) {
a5[i] *=2;
}
}
/**
*
*/
void f1() {
//陣列劃分:
//一維陣列,二維陣列,多維陣列
//二維陣列 :類似於execl, 表格中的資訊以行、列的形式組織儲存
int[][] array12;
int array[][];
int[]array13[];
//三種定義方式
int[][] array31 = new int[2][3];
int[][] array32 = new int[][] {{2,3,4,5},{1,2,34,4}};
int[][] array33 = {{1,2,3},{4,5,6}};
//三種賦值方式
test(array32);
System.out.println("=============");
}
void test(int [][]array) {
array[1][2] = 9;
System.out.println(array[1][2]);
System.out.println();
for (int i = 0; i < array.length; i++) {
for (int j = 0; j < array[i].length; j++) {
System.out.print(array[i][j]);
System.out.print(" ");
}
System.out.println();
}
System.out.println();
for (int[] p1 : array) {
for (int p2 : p1) {
System.out.print(p2);
System.out.print(" ");
}
System.out.println();
//在java中認為 二維陣列是 陣列的陣列
//即,二維陣列是一個特殊的一維陣列,其中每個陣列又是一個一維陣列
}
}
}