【Java 程式設計】陣列初始化的多種方式
阿新 • • 發佈:2019-01-11
文章目錄
1 陣列定義與初始化基本方式
陣列定義的兩種基本方式:
int[][] a1;
int a2[][];
與C、C++不同,Java在定義陣列時並不為陣列元素分配記憶體空間。
記憶體空間在陣列初始化時分配:
int[][] a1 = new int[2][3];
int a2[][] = new int[2][3];
int a3[ ][ ] = {{1,2,3}, {4,5,6}};
Java語言中,陣列是引用型別,二維陣列是陣列的陣列,陣列空間不是連續分配的,所以不要求二維陣列每一維的大小相同。
int[][] a = new int[2][];
a[0] = new int[3];
a[1] = new int[5];
int[2][] a = {{1,2,3}, {1,2,3,4,5}}
2 Array 工具類
Array 類提供了很多動態建立和操作 Java 陣列的靜態方法。
int[][] a = new int[2][3];
// 也可以通過 Array 工具類來建立
int[][] a1 = (int[][])Array.newInstance(int[].class, 2)
c[0] = new int[3];
c[1] = new int[3];
3 Stream 方式
通過 Stream 進行陣列的初始化:
double[] a = DoubleStream.of(1,2,3,4,5).toArray();
// 通過 IntStream 產生斐波那契數列: 1, 2, 3, 5, 8 ....
int[] b = IntStream.generate(
int i = 0;
int j = 1;
@Override
public int getAsInt(){
int tmp = i+j;
i = j;
j = tmp;
return j;
}
).limit(10).toArray();
Stream 能讓人在 Java 程式設計中體會到函數語言程式設計的快感。
4 Arrays
該類中包含了大量與陣列操作有關的方法,如 :
- sort,
- search,
- fill,
- copy
- stream
因為 java 8 之後,更推薦使用 Stream,lambda 等函數語言程式設計的方式來處理集合。