lichangliu1098
2016-11-17 14:57:13
java List去重,list中可以为任意obj,但是obj必须要求重写equals(),建议hashcode()也重写
没事写了个list对字符串去重的方法,后来想想可不可以对其他obj去重,实验后发现也可以,但obj要重写equals()方法,hashcode()不是必须的,但一般对象重写两个方法都最好重写。
package com.po; public class Student { public String name; public String age; public String grade; 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 String getGrade() { return grade; } public void setGrade(String grade) { this.grade = grade; } @Override public int hashCode() { int result = 17; result = result * 31 + name.hashCode(); result = result * 31 + age.hashCode(); result = result * 31 + grade.hashCode(); return result; } @Override public boolean equals(Object obj) { //判断是否是自身 if(obj == this){ return true; } //判断是否属于Studnet类型 if(!(obj instanceof Student)){ return false; } Student stu = (Student)obj; return stu.age.equals(this.age)&&stu.getGrade().equals(this.grade)&&stu.getName().equals(this.name); } } package main; import java.util.ArrayList; import java.util.List; import com.po.Student; public class Tools { /** * list去重 * @Title: listUniqObj * @Description: TODO(这里用一句话描述这个方法的作用) * @param @param list * @param @return 设定文件 * @return List<T> 返回类型 * @throws */ public static <T> List<T> listUniqObj(List<T> list){ if(list!= null && list.size()>0){ for(int i=0;i<list.size();i++){ //获取最后一个相同对象的序号 int j = list.lastIndexOf(list.get(i)); if(i!=j){ list.remove(j); i--; } } } return list; } public static void main(String[] args) { List<Student> studList=new ArrayList<Student>(); List<Student> newStudList = new ArrayList<Student>(); for(int i=0;i<500;i++){ for(int j=0;j<2;j++){ Student student1 = new Student(); student1.setAge("11"); student1.setGrade("11"); student1.setName("11"); Student student2 = new Student(); student2.setAge("22"); student2.setGrade("22"); student2.setName("22"); Student student3 = new Student(); student3.setAge("33"); student3.setGrade("33"); student3.setName("33"); studList.add(student1); studList.add(student2); studList.add(student3); } } newStudList = Tools.listUniqObj(studList); System.out.println(newStudList.toString()); } }
请下载代码后再发表评论
相关代码
最近下载
最近浏览
cathyZhong LV2
2020年5月20日
Roy_yu LV6
2020年4月7日
luohaipeng LV23
2019年11月18日
suagcf LV9
2019年5月8日
ywy31415
2019年4月16日
暂无贡献等级
a524460 LV4
2018年10月16日
vijayChen LV16
2018年7月4日
baggar LV3
2018年4月10日
li_dashuo
2018年4月3日
暂无贡献等级
qwerqaz123 LV8
2017年11月3日