/**
* 去重
* 需要去掉学生中分数相同的
*/
//需要去重的List
List<student> ListStudents= new ArrayList();
//创建一个set
Set set = new HashSet();
//记录set的大小
int nowsize = set.size();
//用存放去重后的对象
List<student> listTemp = new ArrayList();
//循环
for(int i=0;i<ListStudents.size();i++){
//将set放入一个学生的分数
set.add(ListStudents.get(i).getScore());
//如果set大小不等于之前的大小,说明分数成功放入,则执行以下
if (nowsize != set.size()){
//将本次循坏的对象放入新的ArrayList中
listTemp.add(ListStudents.get(i));
//用nowsize 记录大小,用于下一次循坏的比较
nowsize = set.size();
}
}
应用
可用于实际项目下拉框,需要查询数据库的数据时,如果出现重复的数据,使用该方法去重。
去除List中的重复元素
// 第一种:通过创建新的集合来存储不重复的元素
//需要去重的List
List<String> list1 = new ArrayList<Integer>();
//新的List
List<String> list2 = new ArrayList<Integer>();
for (String in : list1) {
if (!list2.contains(in)) {
list2.add(in);
}
}
System.out.println(list2);
// 第二种:把集合元素先删除,后添加不重复的元素
//需要去重的List
List<String> list1 = new ArrayList<Integer>();
for (int i = 0; i < list1.size(); i++) {
String in = list1.remove(i);
if (!list1.contains(in)) {
list.add(i, in);
} else {
i--;
}
}
System.out.println(list1);
// 第三种:利用set集合自动去重的特性
//需要去重的List
List<String> list1 = new ArrayList<Integer>();
System.out.println(list1);
Set set = new HashSet(list);
//新的List
List list2 = new ArrayList(set);
System.out.println(list2);
// 第四种:利用treeSet集合自动去重的特性
//需要去重的List
List<String> list1 = new ArrayList<Integer>();
System.out.println(list1);
TreeSet treeSet = new TreeSet(list);
//新的List
List list2 = new ArrayList(treeSet);
System.out.println(list2);
//treeSet的默认排序的升序,根据实际情况选择排序方式,降序可使用reverse