Java 集合7 练习——去除List中的重复元素

列表(List)是可以允许出现重复的元素, 但是如果现在就要求使用List并且集合中不存在重复的元素
需求:要求容器中的元素保证唯一性
思路
1.先创建一个临时容器,用于存储惟一性的元素
2.遍历原容器,将遍历到的元素到临时容器中去判断,是否存在
3.如果存在不存储到临时容器中,如果不存在,存储到临时容器中
4.遍历结束后,临时容器中的元素就是惟一性的元素
5.如果需要将这些惟一性的元素保存在原容器中,只要将原容器清空,将临时容器中的元素添加到原容器中
代码:

package Collection;
import java.util.*;
/*
使用List   但是要保证集合中的元素的惟一性
需求:去除 List  集合中的重复
 */
public class SingleElemen_List {
    public static void main(String[] args){
    List list = new ArrayList();
    list.add("itcast1");
    list.add("itcast2");
    list.add("itcast1");
    list.add("itcast2");
    list.add("itcast1");

    getSingleElement(list);
    System.out.println(list);

    }

    //创建去除重复元素的函数
    public static void getSingleElement(List list) {
        //1.创建临时容器
        List temp = new ArrayList();
        //2.遍历原容器
        for (Iterator it = list.iterator(); it.hasNext(); ) {
            Object obj = it.next();
            //3.判断临时容器中是否存在遍历到的元素
            if (!temp.contains(obj)) {
                temp.add(obj);
            }
        }
        //4.遍历结束,所有惟一性的元素都已经存储在了临时容器中
        //5.清空原容器,降临时容器中的元素添加到原容器中
        list.clear();
        list.addAll(temp);
    }
}

运行结果:[itcast1, itcast2]

List 集合去重复的关键:contains() :判断是否包含的底层代码其实是使用了 equals() 方法
当元素不是字符串而是自定义类时:包含的判断依据是自定义类的 equals() 定义的规则
存储自定义的学生对象,相等的规则是:名字和年龄相同

  list.add(new Student("Lisi",20));
        list.add(new Student("Zhangshan",25));
        list.add(new Student("Lisi",20));
        list.add(new Student("Wangwu",18));

运行结果:[Lisi 20, Zhangshan 25, Wangwu 18]

猜你喜欢

转载自blog.csdn.net/Stitch__/article/details/82378578