在Java 8中是否有一种方法可以使用map()转换数组/集合,而不必重新分配所创建的副本。
Arrays.stream(array).mapInPlace(x -> x / 100);
list.stream().mapInPlace(e -> e.replaceAll(" ", ""));而不是
array = Arrays.stream(array).map(x -> x / 100).toArray();
list = list.stream().map(e -> e.replaceAll(" ", "")).collect(Collectors.toList());如果没有,这个设计决定的原因是什么?
发布于 2018-09-05 10:20:26
也许在您的案例中使用List::replaceAll可以帮助您:
Arrays.asList(array).replaceAll(x -> x / 100);和
list.replaceAll(e -> e.replaceAll(" ", ""));@Holger的优点是,如果需要索引,可以使用Arrays::setAll:
Arrays.setAll(array, x -> array[x] / 100);或者更好的是,如果您希望您的工作并行,您可以使用Arrays::parallelSetAll:
Arrays.parallelSetAll(array, x -> array[x] / 100);https://stackoverflow.com/questions/52182690
复制相似问题