关于数组(Arrays)与 工具类Arrays
Posted woshi123
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于数组(Arrays)与 工具类Arrays相关的知识,希望对你有一定的参考价值。
关于数组(Arrays)
数组的定义
静态初始化
//使用静态初始化,初始化数组指定数组元素的类型,初始值和数组长度(根据{}中元素的个数而定)
Object[] array0;
array0 = new Object[]{};
Object[] array1 = new String[]{"a","b","c"};
Object[] array2 = {};
//简化写法:在定义数组的同时执行数组初始化
Object[] array4 = {};
动态初始化
//使用动态初始化,数组的定义和初始化同时完成,并指定数组长度,由系统来分配初始值
int[] array = new int[5];
Object[] array1 = new String[9];
系统分配数组的初始值:
- byte short int long :0
- float double :0.0
- char :u0000
- boolean:false
- 类、接口、数组:null
使用数组
关于二维数组的使用:
//表示一个int的二维数组,数组变量array指向一个长度为2的数组,里面存放的是两个各自长度为5的int数组
int[][] array = new int[2][5];
工具类Arrays
Java 8 之前的Arrays类方法
int[] a = new int[]{1,2,3,4};
int[] b = {1,2,3,4};
//a b数组长度相等,各个元素依次相等将输出true
System.out.println(Arrays.equals(a,b));
//通过复制a数组,生成一个a1数组,并将数组长度拓展为6,多余的默认分配0
int[] a1 = Arrays.copyOf(a,6); //a1 = {1,2,3,4,0,0}
//将a1的第4(包括)到第6个位置(不包括)赋值为9
Arrays.fill(a1,4,6,9);
//打印a1
System.out.println(Arrays.toString(a1));
int[] c = {9,3,44,1};
//对数组c排序(从小到大)
Arrays.sort(c);
System.out.println(Arrays.toString(c));
Java 8 为Arrays工具类增加了一些工具方法,这些方法可以充分利用多CPU并行的能力来提高设值、排序的性能。
int[] arr1 = new int[]{3,-9,11,8};
int[] arr2 = Arrays.copyOfRange(arr1,0,4); //这个在Java8之前就有了
//对arr1进行并发排序
Arrays.parallelSort(arr1);
System.out.println(Arrays.toString(arr1));
Arrays.parallelPrefix(arr1, new IntBinaryOperator() {
//i 代入的是数组中前一个索引处的元素,计算第一个元素时,i为1
//i1 代入的是数组中当前索引处的元素
@Override
public int applyAsInt(int i, int i1) {
return i*i1;
}
});
System.out.println(Arrays.toString(arr1));
Arrays.parallelSetAll(arr2, new IntUnaryOperator() {
//i 代入的是当前正在计算的索引
@Override
public int applyAsInt(int i) {
return i*5; //{0,5,10,15}
}
});
System.out.println(Arrays.toString(arr2));
以上是关于关于数组(Arrays)与 工具类Arrays的主要内容,如果未能解决你的问题,请参考以下文章