1、去除ArrayList集合中的重复元素
list集合判断元素是否相同,依据的是元素的equals方法(可重写equals方法,例如)
remove和contains方法都是根据equals来判断的
public boolean equals(Object obj){
if(obj instanceof Emp){
return false;
}
Emp p =(Emp)obj;
System.out.println(this.name+"||"+this.age);
return this.name.equals(p.name)&&
this.age.equals(p.age);
}
package test;
import java.util.ArrayList;
import java.util.Iterator;
public class ArrayListTest {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
ArrayList arr = new ArrayList();
Emp e1 = new Emp ();
e1.setName("a1");
Emp e2 = new Emp ();
e2.setName("a2");
Emp e3 = new Emp ();
e3.setName("a3");
arr.add(e1);
arr.add(e2);
arr.add(e3);
arr.add(e3);
arr.add(e2);
sop(arr);
/*[此人的人名是:a1, 此人的人名是:a2, 此人的人名是:a3, 此人的人名是:a3, 此人的人名是:a2]*/
sop(singleElement(arr));
/*[此人的人名是:a1, 此人的人名是:a2, 此人的人名是:a3] */
}
public static void sop (Object obj ){
System.out.println(obj);
}
public static ArrayList singleElement (ArrayList all){
//定义一个临时容器
ArrayList newAl = new ArrayList();
Iterator it = all.iterator();
//在迭代时,循环中next一次,就要hasNest()判断一次
//*********************************************
while(it.hasNext()){
Object obj = it.next();
if(!newAl.contains(obj)){
newAl.add(obj);
}
}
return newAl;
}
//*********************************************
}
2、TODO