数组创建的5种方式
一维数组的声明方式
-
语法结构
数据类型[] 数组名称 = new 数据类型[数组的长度];(动态方式)
数据类型 数组名称[] = new 数据类型[数组的长度];(不推荐)
-
代码实现
// 1.使用声明的方式的创建数组一维数组 int[] iArr = new int[5]; int iArr1[] = new int[5];
-
这两种方式的区别
-
以上两种方式从结果上来说是一样的,第二种声明方式和变量的声明区分,进而提高代码的可读性
数组的长度可以是一个整形变量 如果是变量时 变量的值 > 0 ;
-
数组声明的同时进行初始化(静态方式)
-
语法结构
数据类型[] 数组名称 = {初始值1, 初始值2, …};简化写法
数据类型[] 数组名称 = new 数据类型[] {初始值1, 初始值2, …}; 原始写法 -
代码实现
// 2.数组的声明的通时进行初始化 int[] iArrs = new int[]{1,2,3}; int[] iArrs1 = {1,2,3};
数组的创建通过匿名内部类
-
java8提供了大量的功能函数 由于创建数组需要返回值和数组长度 所以使用Function的函数式接口
// 3.数组的创建通过匿名内部类 Function<Integer,Integer[]> function = new Function<Integer, Integer[]>() { @Override public Integer[] apply(Integer integer) { return new Integer[integer]; } }; // 3.1数组的创建 Integer[] iArra = function.apply(5);
-
注意事项
使用函数式接口创建数组 传入参数会自动包装
使用数组和使用上面里上面两种方式相同
数组创建通过Lambda表达式
-
数组的创建可以使用功能函数 也就是可以使用Lambda表达式进行简化
-
代码实现
// 4.数组创建通过Lambda表达式其实就是匿名内部类的简化 Function<Integer, Integer[]> function1 = integer -> new Integer[integer]; // 4.1数组的创建 Integer[] iArra1 = function1.apply(5);
数组创建通过引用方法的方式创建数组
-
代码实现
// 5.数组创建通过方法的引用创建 Function<Integer, Integer[]> function2 = Integer[] :: new; // 5.1数组的创建 Integer[] iArra2 = function2.apply(5);