A:案例演示
需求:ArrayList去除集合中自定义对象元素的重复值(对象的成员变量值相同)
B:注意事项
需要重写equals()方法
代码:
import java.util.ArrayList;
import java.util.Iterator;
import com.heima.bean.Student;
@SuppressWarnings({ "rawtypes", "unchecked" })
/**
contains方法判断是否包含,底层依赖的是equals方法
remove方法判断是否删除,底层依赖的 同样 是equals方法
*/
public class Demo2_ArrayList {
public static void main(String[] args) {
ArrayList arr = new ArrayList();
arr.add(new Student("张三",23));
arr.add(new Student("张三",23));
arr.add(new Student("张三",23));
arr.add(new Student("李四",24));
arr.add(new Student("李四",24));
arr.add(new Student("李四",24));
arr.add(new Student("李四",24));
ArrayList list = getSingle(arr);
System.out.println(list);
}
/*
*
* 去除重复 1,返回ArrayList 2,参数列表ArrayList 分析: 1,创建新集合 2,根据传入的集合(老集合)获取迭代器
* 3,遍历老集合 4,通过新集合判断是否包含老集合中的元素,如果包含就不添加,如果不包含就添加
*/
public static ArrayList getSingle(ArrayList arr) {
ArrayList arr1 = new ArrayList();
Iterator it = arr.iterator();
while (it.hasNext()) {
Object object = it.next();
// System.out.println(object);
/*
* if(!arr1.contains(object)) { //如果新集合中不包含该元素 arr1.add(object);
* //将该元素添加到新集合中 }
*/
if (arr1.contains(object)) {
continue;
} else {
arr1.add(object);
}
}
return arr1;
}
}