------- android培训、java培训、java基础学习技术总结、期待与您交流! ----------
删除ArrayList中重复元素的方法有两种:
方法一:创建一个新的ArrayList对象,对旧ArrayList对象中的元素进行判断,当新的ArrayList中对象已经存在,则不执行添加。判断对象是否重复的方法的关键在于在元素对象中复写equals方法。
package com.itcast.test;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
class Student{
private String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public Student(String name,int age){
this.name=name;
this.age=age;
}
public boolean equals(Object obj){
if(!(obj instanceof Student))
return false;
Student stu=(Student)obj;
return this.name.equals(stu.name)&&this.age==stu.age;
}
}
public class RemoveSame {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
ArrayList<Object> arr=new ArrayList();
arr.add(new Student("zhangsan",23));
arr.add(new Student("zhangsan",23));
arr.add(new Student("lisi",22));
arr.add(new Student("lisi",22));
arr.add(new Student("wangwu",22));
arr=singleArrayList(arr);
Iterator it=arr.iterator();
while(it.hasNext()){
Student stu=(Student)it.next();
System.out.println(stu.getName()+"....."+stu.getAge());
}
}
public static ArrayList singleArrayList(ArrayList al){
ArrayList newal=new ArrayList();
Iterator it1=al.iterator();
while(it1.hasNext()){
Object obj=it1.next();
if(!newal.contains(obj)){
newal.add(obj);
}
}
return newal;
}
}
第二种方法:创建一个HashSet对象,将Arraylist中的元素一次放入set中,由于set集合中元素不允许重复,那么重复的元素就不能添加到set中。set中判断元素是否重复的关键在于在元素对象中重写了equals方法和hashCode方法。
package com.itcast.test;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
class Student{
private String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public Student(String name,int age){
this.name=name;
this.age=age;
}
public boolean equals(Object obj){
if(!(obj instanceof Student))
return false;
Student stu=(Student)obj;
return this.name.equals(stu.name)&&this.age==stu.age;
}
public int hashCode(){
return name.length()+age*38;
}
}
public class RemoveSame1 {
public static void main(String[] args){
ArrayList arr=new ArrayList();
arr.add(new Student("zhangsan",23));
arr.add(new Student("zhangsan",23));
arr.add(new Student("lisi",22));
arr.add(new Student("lisi",22));
arr.add(new Student("wangwu",22));
HashSet set=new HashSet();
Iterator it=arr.iterator();
while(it.hasNext()){
set.add(it.next());
}
Iterator it1=set.iterator();
while(it1.hasNext()){
Student stu=(Student) it1.next();
System.out.println(stu.getName()+"...."+stu.getAge());
}
}
}