Map<String, Integer> map = new HashMap<>();
for (String item : list) {
map.put(item, map.getOrDefault(item, 0) + 1);
}
for (Map.Entry<String, Integer> entry : map.entrySet()) {
if (entry.getValue() > 1) {
System.out.println("重复元素:" + entry.getKey() + ",出现次数:" + entry.getValue());
}
}
Stream<String> stream = list.stream();
collect()
方法将Stream转换为Map,其中键为元素,值为出现次数。Map<String, Integer> map = stream.collect(Collectors.toMap(list::contains, String::equals, (a, b) -> a + 1));
for (Map.Entry<String, Integer> entry : map.entrySet()) {
if (entry.getValue() > 1) {
System.out.println("重复元素:" + entry.getKey() + ",出现次数:" + entry.getValue());
}
}
以上两种方法都可以用于获取集合中重复数据的值和数量。方法一是基于HashMap和HashSet的实现,而方法二是基于Java 8的Stream API。可以根据实际需求和性能要求选择合适的方法。