您的位置:首页 > 编程语言 > Java开发

java中集合set去重使用

2016-07-08 16:59 666 查看
 第一种,List<Integer> , List<String> 用set去重时,无需重写equals方法

       List<Integer> list = new ArrayList<Integer>();
for (int i = 0 ; i < 10 ; i++ ) {
list.add(i);
}
list.add(3);
list.add(5);
for (int m = 0 ; m < list.size() ; m++  ) {
System.out.println("list的内容是:"+list.get(m));
}
Set<Integer> set = new HashSet<Integer>();
for(int j = 0 ; j < list.size() ; j++ ){
set.add(list.get(j));
}

//第一种:用Iterator遍历
Iterator<Integer> it = set.iterator();  
while (it.hasNext()) {  
Integer str = it.next();  
 System.out.println("set用Iterator遍历的内容是:"+str);  
}  
 
//第二种:for循环遍历:  
for (Integer str : set) {  
     System.out.println("第二种遍历:"+str);  
}  

达到去重了效果

 第二种,当是对象时,即List<Person>去重时,必须所有属性的值相同,必须在实体中重写equals以及hashCode方法

//对象列表
List<Person> perList = new ArrayList<Person>();

//创建各种对象,初始化数据
Person p1 = new Person();
p1.setId(1);
p1.setName("zhang");
p1.setAge(22);
perList.add(p1);

Person p2 = new Person();
p2.setId(2);
p2.setName("san");
p2.setAge(22);
perList.add(p2);

Person p3 = new Person();
p3.setId(3);
p3.setName("zhangsan");
p3.setAge(22);
perList.add(p3);

Person p4 = new Person();
p4.setId(4);
p4.setName("zs");
p4.setAge(22);
perList.add(p4);

Person p5 = new Person();
p5.setId(5);
p5.setName("zhangs");
p5.setAge(22);
perList.add(p5);

Person p6 = new Person();
p6.setId(1);
p6.setName("zhang");
p6.setAge(22);
perList.add(p6);

Set<Person> pSet = new HashSet<Person>();
for(Person pe : perList){
System.out.println("List遍历输出:"+pe.toString());
pSet.add(pe);
}
for (Person p : pSet) {
System.out.println("转换成set后:"+p.toString());
}

/**
* 输出结果
*/

// List遍历输出:Person [id=1, age=22, name=zhang]

// List遍历输出:Person [id=2, age=22, name=san]

// List遍历输出:Person [id=3, age=22, name=zhangsan]

// List遍历输出:Person [id=4, age=22, name=zs]

// List遍历输出:Person [id=5, age=22, name=zhangs]

// List遍历输出:Person [id=1, age=22, name=zhang]

// 转换成set后:Person [id=5, age=22, name=zhangs]

// 转换成set后:Person [id=4, age=22, name=zs]

// 转换成set后:Person [id=1, age=22, name=zhang]

// 转换成set后:Person [id=3, age=22, name=zhangsan]

// 转换成set后:Person [id=2, age=22, name=san]

同样达到了去重效果
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: