怎么从list中找出重复数据,以及这些重复数据的个数?
解决思路是:使用一个map,key用来记录list中的数据,value用来记录重复数据的个数,然后操作map来获取list中的重复数据即可,代码如下:
package com.Jevin.test;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class Test03 {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("a");
list.add("a");
list.add("a");
list.add("b");
list.add("b");
list.add("c");
list.add("d");
list.add("d");
Map<String,Integer> map = new HashMap<>();
for(String str:list){
Integer i = 1; //定义一个计数器,用来记录重复数据的个数
if(map.get(str) != null){
i=map.get(str)+1;
}
map.put(str,i);
}
System.out.println("重复数据的个数:"+map.toString());
System.out.print("重复的数据为:");
for(String s:map.keySet()){
if(map.get(s) > 1){
System.out.print(s+" ");
}
}
}
}
执行结果如下: