java怎么去掉List中实体类字段重复字段

小崔_01 2017-03-13 09:39:32
public class sssss {
private int id;
private String name;
private String age;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
public static void main(String[] args) {
List<sssss> l = new ArrayList<sssss>();
sssss s=new sssss();
s.setId(1);
s.setName("小崔");
s.setAge("20");
sssss s1=new sssss();
s1.setId(2);
s1.setName("小五");
s1.setAge("20");
sssss s2=new sssss();
s2.setId(3);
s2.setName("小崔");
s2.setAge("20");
sssss s3=new sssss();
s3.setId(4);
s3.setName("小五");
s3.setAge("20");
sssss s4=new sssss();
s4.setId(5);
s4.setName("小六");
s4.setAge("20");
l.add(s);
l.add(s1);
l.add(s2);
l.add(s3);
l.add(s4);

List<sssss> newList = new ArrayList<sssss>();



for(sssss i:newList){
System.out.println(i.getId());
System.out.println(i.getName());
System.out.println(i.getAge());
}
}
}


想让它去掉name重复的,输出1 小崔 20 , 2 小五 20 , 5 小六 20 !
大神帮帮忙。急!!!
...全文
531 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
小崔_01 2017-03-13
  • 打赏
  • 举报
回复
谢谢大家,已解决、
mmqw 2017-03-13
  • 打赏
  • 举报
回复
上边的代码有点不对 重写一下sssss 的equals public boolean equals(Object obj) { if(obj==null||obj.getClass()!=sssss .class) { return false; } sssss s=(sssss ) obj; if(this.name.equals(s.name)){ return true; } return false; } 重新将数据加到新的列表中,并校验是否有重复的数据 List<sssss> list=new ArrayList(); for(sssss s:l ) { if(list.indexOf(s)>0)continue; list.add(s) }
mmqw 2017-03-13
  • 打赏
  • 举报
回复
重写一下sssss 的equals public boolean equals(Object obj) { if(obj==null||obj.getClass()!=sssss .class) { return false; } sssss s=(sssss ) obj; if(this.name.equals(s.name)){ return true; } return false; } 重新将数据加到新的列表中,并校验是否有重复的数据 List<sssss> list=new ArrayList(); for(sssss s:l ) { if(list.indexOf(s))continue; list.add(s) }
鱿鱼ing 2017-03-13
  • 打赏
  • 举报
回复
实体类里重写equals , name字段相等即为实体类相等 add到list里的时候判断一下 实体类1.equals(实体类2)
lin351550660 2017-03-13
  • 打赏
  • 举报
回复
Map map = new HashMap<String,sssss>(); for(sssss i:newList){ map.put(i.getName(),i); } List<sssss> a = new ArrayList<sssss>(); for (String key : map.keySet()) { a.add(map.get(key)); } for(sssss i:a){ System.out.println(i.getId()); System.out.println(i.getName()); System.out.println(i.getAge()); }
  • 打赏
  • 举报
回复
1.首先是想到了用set来去重,但是感觉应该不行 2.想来想去觉得还是采用在存入list前,判断之前是否有重名的元素,没有再存入

50,526

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧