您的位置:首页 > 其它

使用map巧妙去除集合中重复的对象

2017-10-31 20:13 190 查看
在mysql中如果查询一条去除重复的数据大家都知道使用DISTINT进行去重,但是DISTINT去除重复是你查询的多个列表项全部相同才能去重,查询的数据某个列的值相同其它列的值不同是不能去除掉的。

如:





现在我需要把某一列的值相同的只选取一条,达到去重的效果,我试了下使用set去重,也是只有这个对象的所有的值相同才会去掉重复的,最后只是用map进行去重,for循环把集合中的对象装到map中,将你想要去掉的重复的列的值设置为map的key,key相同的后面的会覆盖掉前面的value,达到了去重的效果,代码如下:

public void dataObjectjob() {
// TODO Auto-generated method stub
List<PageData> hunyindata = new ArrayList<PageData>();
List<PageData> funeraldata = new ArrayList<PageData>();
List<String> cardlist = new ArrayList<>();
HashMap<String, PageData> map = new HashMap<>();
PageData params = new PageData();
try {
cardlist = this.listdataobject();
DataSourceContextHolder.setDbType(DataParameter.DATASOURCE2);
hunyindata = this.listhunyin(params);
funeraldata = this.listfuneraldata();
for (int i = 0; i < hunyindata.size(); i++) {
map.put(hunyindata.get(i).get("IDCARD").toString(), hunyindata.get(i));
}
for (int j = 0; j < funeraldata.size(); j++) {
map.put(funeraldata.get(j).get("IDCARD").toString(), funeraldata.get(j));
}
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐