user2440671:
Me pregunto si es posible utilizar una sola declaración de vapor de Java para imprimir los elementos únicos en una colección e incluir el recuento de cada elemento.
Por ejemplo, si tuviera:
List<String> animals = Arrays.asList("dog", "cat", "pony", "pony", "pony", "dog");
Me gustaría que la corriente a imprimir:
cat - 1
dog - 2
pony - 3
Ravindra Ranwala:
Puede hacerlo como tal,
Map<String, Long> result = animals.stream()
.collect(Collectors.groupingBy(Function.identity(), Collectors.counting()));
Utilizar Collectors.groupingBy
para agrupar los elementos con la misma clave. A continuación, aplicar el counting
colector de aguas abajo de cada grupo para obtener el recuento.