Listar elementos distintos, incluyendo un recuento con corrientes de Java

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.groupingBypara agrupar los elementos con la misma clave. A continuación, aplicar el countingcolector de aguas abajo de cada grupo para obtener el recuento.

Supongo que te gusta

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