List<Map<String,Object>> list = new ArrayList<>();
Map<String,Object> map1= new HashMap<>();
Map<String,Object> map2= new HashMap<>();
Map<String,Object> map3= new HashMap<>();
Map<String,Object> map4= new HashMap<>();
map1.put("name","小明");
map1.put("sex","男");
map1.put("age","16");
map2.put("name","小明");
map2.put("sex","女");
map2.put("age","16");
map3.put("name","小明");
map3.put("sex","男");
map3.put("age","16");
map4.put("name","小刚");
map4.put("sex","男");
map4.put("age","11");
list.add(map1);
list.add(map2);
list.add(map3);
list.add(map4);
for(Map<String,Object> map:list){
System.out.println(map);
}
System.out.println("------------------------去重后----------------------------");
for(int i=0;i<list.size();i++){
Map<String,Object> m1 = list.get(i);
for(int j=i+1;j<list.size();j++){
Boolean flag = false;
Map<String,Object> m2 = list.get(j);
for(Map.Entry<String,Object> entry1: m1.entrySet()){
flag = false;
String mapKey1 = entry1.getKey();
String mapValue1 = (String) entry1.getValue();
String KeyValue1 = mapKey1 + mapValue1;
for(Map.Entry<String,Object> entry2: m2.entrySet()){
String mapKey2 = entry2.getKey();
String mapValue2 = (String) entry2.getValue();
String KeyValue2 = mapKey2 + mapValue2;
if(KeyValue1.equals(KeyValue2)){
flag = true;
break;
}
}
if(flag == false)
break;
}
if(flag == true){
list.remove(j);
}
}
}
for(Map<String,Object> map:list){
System.out.println(map);
}
运行结果:
{sex=男, name=小明, age=16}
{sex=女, name=小明, age=16}
{sex=男, name=小明, age=16}
{sex=男, name=小刚, age=11}
------------------------去重后----------------------------
{sex=男, name=小明, age=16}
{sex=女, name=小明, age=16}
{sex=男, name=小刚, age=11}
以上去重代码用java8新特性代替
list = list.stream().distinct().collect(Collectors.toList());
本文介绍了一种使用传统Java循环进行集合去重的方法,并对比了利用Java 8的新特性简化这一过程的技术实现。通过实例展示了如何从重复的数据项中筛选出唯一记录。
876





