/**标签:map,高效,Java,differList,元素,List,集合,strB From: https://www.cnblogs.com/Lee597/p/18188777
* 借助Map来获取listA、listB的不同元素集合
*
* @param listA 集合A
* @param listB 集合B
* @return list<String> 不同元素集合
*/
public static List<String> getDifferListByMap(List<String> listA, List<String> listB) {
List<String> differList = new ArrayList<>();
Map<String, Integer> map = new HashMap<>();
long beginTime = System.currentTimeMillis();
for (String strA : listA) {
map.put(strA, 1);
}
for (String strB : listB) {
Integer value = map.get(strB);
if (value != null) {
map.put(strB, ++value);
continue;
}
map.put(strB, 1);
}
for (Map.Entry<String, Integer> entry : map.entrySet()) {
//获取不同元素集合
if (entry.getValue() == 1) {
differList.add(entry.getKey());
}
}
long endTime = System.currentTimeMillis();
System.out.println("集合A和集合B不同的元素:"+differList);
return differList;
}
参考:
Java高效找出两个大数据量List集合中的不同元素-阿里云开发者社区 (aliyun.com)