Find duplicate elements with its count using Java 8
Categories: Java 8(JDK1.8) Java Java Examples
package r4r.co.in;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.function.Function;
import java.util.stream.Collectors;
public class DuplicateElementsWithItsCount {
public static void main(String[] args) {
// duplicate elements with its count using Java 8
List<String> list = Arrays.asList("1", "2", "3", "1", "2", "4");
// First Approach
Map<String, Long> map = list.stream().filter(s -> Collections.frequency(list, s) > 1)
.collect(Collectors.groupingBy(Function.identity(), Collectors.counting()));
System.err.println(map);
// Second Approach
Map<String, Long> smap = list.stream()
.collect(Collectors.groupingBy(Function.identity(), Collectors.counting())).entrySet().stream()
.filter(entry -> entry.getValue() > 1)
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));
System.out.println(smap);
}
}
Output
{1=2, 2=2}
{1=2, 2=2}