List去重 (下)

来源:互联网 发布:指纹校准软件 编辑:程序博客网 时间:2024/06/06 02:42
package com.chili.test;


import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;


import com.chili.entity.Student;


/**
 * 测试类
 * @author zpf
 *
 */
public class Test {


public static void main(String[] args) 
{
/*
* List集合去重 之 根据对象的某个属性
*/
List<Student> stuList = new ArrayList<Student>();

// 初始化Student实例
Student s1 = new Student("A", 18);
Student s2 = new Student("A", 16);
Student s3 = new Student("A", 19);
Student s4 = new Student("B", 19);

stuList.add(s1);
stuList.add(s2);
stuList.add(s3);
stuList.add(s4);

/*
* 根据学生姓名 去重
* 利用Map的键值不能重复 这一特点
*/
Map<String, Student> map = new HashMap<String, Student>();
List<Student> resList = new ArrayList<Student>();

for(Student stu : stuList)
{
map.put(stu.getName(), stu);
}

Iterator<String> it = map.keySet().iterator();
while(it.hasNext())
{
resList.add(map.get(it.next()));
}

//分别遍历去重前后的结果集
System.out.println("\n" + "*************去重之前**************");
for(Student stu : stuList)
{
System.out.println(stu.getName() + ">>>" + stu.getAge());
}

System.out.println("\n" + "*************去重之后**************");
for(Student stu : resList)
{
System.out.println(stu.getName() + ">>>" + stu.getAge());
}


}

}


运行结果:



*************去重之前**************
A>>>18
A>>>16
A>>>19
B>>>19


*************去重之后**************
A>>>19
B>>>19

0 0
原创粉丝点击