版权声明:欢迎转载 https://blog.csdn.net/antony1776/article/details/86295055
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 等函数式编程的方式来处理集合。