使用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();
}
}
如:
现在我需要把某一列的值相同的只选取一条,达到去重的效果,我试了下使用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();
}
}
相关文章推荐
- 去除List集合中的重复对象,Map遍历代码
- 在主方法中创建map集合中存储3个学生对象.key使用字符串表示编号(不能重复)value是学生对象。然后调用以下两个方法;
- 黑马程序员—集合将自定义对象作为元素存储到ArrayList集合中,并去除重复元素。 比如:存人对象。同姓名同年龄,视为同一个人,为重复元素。
- JAVA学习第三十九课(常用对象API)— Map集合及其子类对象(集合使用技巧)
- 将自定义对象作为元素存到ArrayList集合中,并去除重复元素。
- ArrayList去除集合中自定义对象元素的重复值
- 为何使用EL表达式能够访问valueStack中对象的属性、采用OGNL表达式创建List/Map集合对象
- List集合去除重复对象
- 巧妙使用Map集合,解决实际工作中的问题
- 去除集合中重复的对象
- 当使用json写map对象时里面的重复对象会变成引用,导致前段取不到
- 向ArrayList集合中存入对象,并以让集合用自己设定的方式去除重复元素!(覆写equals方法)
- java 中 各种集合(List Set Map) 去除重复项
- json对象、json格式字符串、java对象【使用此net.sf.json.JSONObject将java对象[比如数组集合Map、Map扩展]转换成json格式字符串】
- 去除集合中的重复对象
- List集合去除重复对象
- List集合去除重复对象及equals()、hashCode()方法的作用
- 使用xStream对(Java对象、List集合、Map )到JSON转换、从JSON转换java对象
- Java将自定义对象作为元素存到ArrayList集合中,并去除重复元素。
- list集合去除重复对象