Obtener la matriz de la propiedad, de propiedad (propiedad anidada) usando una secuencia de Java 8

chepe lucho :

Con base en esta pregunta ...

Tengo este código:

List<IdDTO> ids = collectionEntityDTO.stream().map(EntityDTO::getId).collect(Collectors.toList());
List<Long> codes = ids.stream().map(IdDTO::getCode).collect(Collectors.toList());
Long[] arrayCodes = codes.toArray(new Long[0]);

La forma de hacerlo, en una manera tan sencilla?

Ousmane D .:

Su enfoque es bastante ineficiente, simplemente encadenar los métodos:

collectionEntityDTO.stream()
        .map(EntityDTO::getId)
        .map(IdDTO::getCode)
        .toArray(Long[]::new);

Este enfoque es mejor porque:

  • Es más fácil de leer lo que está pasando

  • Es más eficiente como ya se ha mencionado como no requiere impaciencia la creación de nuevos objetos de colección en cada paso intermedio.

  • No hay desorden con las variables de basura.
  • más fácil poner en paralelo.

Supongo que te gusta

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