万能的数组工具类:Arrays
一常用方法应用
1代码示例
import java.util.Arrays; public class ArraysTest { public static void main(String[] args) { // 定义一个a数组 int[] a = new int[]{3, 4 , 5, 6}; // 定义一个a2数组 int[] a2 = new int[]{3, 4 , 5, 6}; // a数组和a2数组的长度相等,每个元素依次相等,将输出true System.out.println("a数组和a2数组是否相等:" + Arrays.equals(a , a2)); // 通过复制a数组,生成一个新的b数组 int[] b = Arrays.copyOf(a, 6); System.out.println("a数组和b数组是否相等:" + Arrays.equals(a , b)); // 输出b数组的元素,将输出[3, 4, 5, 6, 0, 0] System.out.println("b数组的元素为:" + Arrays.toString(b)); // 将b数组的第3个元素(包括)到第5个元素(不包括)赋为1 Arrays.fill(b , 2, 4 , 1); // 输出b数组的元素,将输出[3, 4, 1, 1, 0, 0] System.out.println("b数组的元素为:" + Arrays.toString(b)); // 对b数组进行排序 Arrays.sort(b); // 输出b数组的元素,将输出[0, 0, 1, 1, 3, 4] System.out.println("b数组的元素为:" + Arrays.toString(b)); } }
2运行结果
a数组和a2数组是否相等:true
a数组和b数组是否相等:false
b数组的元素为:[3, 4, 5, 6, 0, 0]
b数组的元素为:[3, 4, 1, 1, 0, 0]
b数组的元素为:[0, 0, 1, 1, 3, 4]
二Java8新增方法举例
1代码示例
import java.util.Arrays; import java.util.function.*; public class ArraysTest2 { public static void main(String[] args) { int[] arr1 = new int[]{3, -4 , 25, 16, 30, 18}; // 对数组arr1进行并发排序 Arrays.parallelSort(arr1); System.out.println(Arrays.toString(arr1)); int[] arr2 = new int[]{3, -4 , 25, 16, 30, 18}; Arrays.parallelPrefix(arr2, new IntBinaryOperator() { // left代表数组中前一个所索引处的元素,计算第一个元素时,left为1 // right代表数组中当前索引处的元素 public int applyAsInt(int left, int right) { return left * right; } }); System.out.println(Arrays.toString(arr2)); int[] arr3 = new int[5]; Arrays.parallelSetAll(arr3 , new IntUnaryOperator() { // operand代表正在计算的元素索引 public int applyAsInt(int operand) { return operand * 5; } }); System.out.println(Arrays.toString(arr3)); } }
2运行结果
E:\test\Java\Java8\Java4\src>java ArraysTest2
[-4, 3, 16, 18, 25, 30]
[3, -12, -300, -4800, -144000, -2592000]
[0, 5, 10, 15, 20]
3结果分析
上面代码完成了三个功能
1 对arr1进行排序。
2 对arr2中的每个元素,完成对前面元素的累乘。
3 对元素索引进行计算,将计算结果赋给arr3。