B.3 Arrays
Arrays类提供了不同的静态方法对数组进行操作。现在,它又包括了四个新的方法(它们都有特别重载的变量)。
B.3.1 使用parallelSort
parallelSort方法会以并发的方式对指定的数组进行排序,你可以使用自然顺序,也可以为数组对象定义特别的Comparator。
B.3.2 使用setAll和parallelSetAll
setAll和parallelSetAll方法可以以顺序的方式也可以用并发的方式,使用提供的函数计算每一个元素的值,对指定数组中的所有元素进行设置。该函数接受元素的索引,返回该索引元素对应的值。由于parallelSetAll需要并发执行,因此提供的函数必须没有任何副作用,就如第7章和第18章中介绍的那样。
举例来说,你可以使用setAll方法生成一个值为0, 2, 4, 6, …的数组:
int[] evenNumbers = new int[10];Arrays.setAll(evenNumbers, i -> i * 2);
B.3.3 使用parallelPrefix
parallelPrefix方法以并发的方式,利用用户提供的二进制操作符对给定数组中的每个元素进行累积计算。通过下面这段代码,你会得到这样的一些值:1, 2, 3, 4, 5, 6, 7, …。
代码清单 B-3 使用
parallelPrefix并发地累积数组中的元素
int[] ones = new int[10];Arrays.fill(ones, 1);Arrays.parallelPrefix(ones, (a, b) -> a + b); ←---- ones现在的内容是[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
