Java 8 - Asignar un Array / Colección en su sitio

Doopy:

¿Hay alguna manera en Java 8 para transformar una matriz / Colección usar map()sin tener que volver a asignar la copia creada, por ejemplo,

Arrays.stream(array).mapInPlace(x -> x / 100);
list.stream().mapInPlace(e -> e.replaceAll(" ", ""));

en lugar de

array = Arrays.stream(array).map(x -> x / 100).toArray();
list = list.stream().map(e -> e.replaceAll(" ", "")).collect(Collectors.toList());

?

Si no es así, ¿cuál es la razón de esta decisión de diseño?

YCF_L:

Utilizando tal vez List::replaceAllen su caso puede ayudarle a:

Arrays.asList(array).replaceAll(x -> x / 100);

y

list.replaceAll(e -> e.replaceAll(" ", ""));

demostración Ideone


Buen punto de @Holger , en caso de que necesite el índice puede utilizar Arrays::setAll:

Arrays.setAll(array, x -> array[x] / 100);

O más mejor si usted quiere que su trabajo sea en paralelo puede utilizar Arrays::parallelSetAll:

Arrays.parallelSetAll(array, x -> array[x] / 100);

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=178105&siteId=1
Recomendado
Clasificación