arraylist去重复,arraylist重复
分享于 点击 8109 次 点评:217
arraylist去重复,arraylist重复
arraylist去重复
下面举一个去重复的例子,包括两方面,一个是普通类型的去重复,一个是自定义对象去重复
package com.xiongda;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.ListIterator;
/**
*
* @author xiongda
* @date 2018年8月12日
* @description arraylist去重复
*/
class Student {
private String name;
private String age;
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;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Student other = (Student) obj;
if (age == null) {
if (other.age != null)
return false;
} else if (!age.equals(other.age))
return false;
if (name == null) {
if (other.name != null)
return false;
} else if (!name.equals(other.name))
return false;
return true;
}
@Override
public String toString() {
return name + " " + age;
}
public Student(String name, String age) {
super();
this.name = name;
this.age = age;
}
}
public class Confirm {
private static ArrayList getSingle(ArrayList list) {
ArrayList newList = new ArrayList();
for (Object str : list) {
if (!newList.contains(str)) {
newList.add(str);
}
}
return newList;
}
public static void main(String[] args) {
// 普通类型去重复
ArrayList<String> list = new ArrayList<>();
list.add("123");
list.add("456");
list.add("123");
list.add("456");
list.add("789");
ArrayList<String> newList = getSingle(list);
System.out.println(newList.toString());
// 自定义类型去重复
ArrayList<Student> studentList = new ArrayList<>();
studentList.add(new Student("dada", "10"));
studentList.add(new Student("xiaoer", "11"));
studentList.add(new Student("dada", "10"));
studentList.add(new Student("xiaoer", "11"));
ArrayList<Student> newStudentList = getSingle(studentList);
System.out.println(newStudentList);
}
}
输出结果如下:
普通类型去重复没什么好说的,遍历集合看是否存在于新集合中,在就不放进去,不在就放进去
至于自定义对象去重复,要小心这个contains方法,这个方法是遍历集合中每一个元素看是否找到相等的,它里面判断相等的方法是object中的equals方法,判断的是地址。所以,如果需要真正做到去重复,就得重写自定义对象中的equals方法,eclipse中可以之间在source中生成。
相关文章
- 暂无相关文章
用户点评