【Java 编程】数组初始化的多种方式

版权声明:欢迎转载 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 等函数式编程的方式来处理集合。

猜你喜欢

转载自blog.csdn.net/antony1776/article/details/86295055