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.