Map commonlyUsed = list .stream() .collect(Collectors.groupingBy(str -> str, Collectors.counting())); commonlyUsed.values().removeIf(l -> l <= 1); Other Way: Map commonlyUsed = list .stream() .collect(Collectors.groupingBy(str -> str, Collectors.counting())) .entrySet() .stream() .filter(e -> e.getValue() > 1).collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));