JAVA複習之二

JAVA基礎複習05陣列

1維陣列介紹

陣列變數儲存的是第一個元素的記憶體位址,元素以連續方式擺在實體內,所以只要知道第一個元素位址,
就可以推得後續元素位址,這也代表陣列中的元素必須具有相同的記憶體大小,也意味著陣列中的元素必為同型。

 

陣列的遍歷方式

int[] show={1,2,3,4,5};
for(int i=0;i<show.length;i++) System.out.print(show[i]);
System.out.println();
for(int i : show) System.out.print(i);

console>>
12345
12345

陣列大小: array.length
字串大小: String.length()

 

陣列的排序和搜尋

//import java.util.Arrays;
int[] books={5,6,1,2,7,4,8};
Arrays.sort(books);//binary搜尋前必先排序
for(int i: books)System.out.print(i);
System.out.println();
System.out.println("搜尋5:"+Arrays.binarySearch(books, 5));
//找不到回傳負索引減1(0的位置會在books[0],所以回傳0-1=-1)
System.out.println("搜尋0:"+Arrays.binarySearch(books, 0));

console>>
1245678
搜尋5:3
搜尋0:-1

 

陣列的傳址與傳值

int[] show={1,2,3,4,5};
//passing by reference
int[] ref=show;
show[0]=3;
for(int i : ref) System.out.print(i);

console>>
32345

int[] show={1,2,3,4,5};
//passing by value(need copy)
int[] co=Arrays.copyOf(show, show.length);
show[0]=3;
for(int i : co) System.out.print(i);

console>>
12345

 

2維陣列的宣告與存取

//沒初始值
int[][] show1=new int[3][3];
int[][][][] show2=new int[4][4][4][4];
//有初始值
int[][] show3={{1,2,3},{1,2,3},{1,2,3}};
//不規則
int[][] show4=new int[3][]; 
show4[0]=new int[]{1,2,3};
show4[1]=new int[]{1,2};
show4[2]=new int[]{1};
for(int[] i : show4){
  for(int j : i) System.out.print(j+",");
  System.out.println();
}

console>>
1,2,3,
1,2,
1,