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日



