Java中List去重的多种方法

复制代码
//Stream 去重:list.stream().distinct()
public static List removeDuplicate(List list) {
    HashSet hashSet = new HashSet(list);
    list.clear();
    list.addAll(hashSet);
    return list;
}


//通过 HashSet 剔除重复元素
public static List removeDuplicate(List list) {
    List newList = (List) list.stream().distinct().collect(Collectors.toList());
    return newList;
}


//通过HashSet剔除重复元素
public static List removeDuplicate(List list) {
    Set set = new HashSet();
    List newList = new ArrayList();
    for (Iterator iter = list.iterator(); iter.hasNext(); ) {
        Object next = iter.next();
        if (set.add(next)) {
            newList.add(next);
        }
    }
    list.clear();
    list.addAll(newList);
    return list;
}
//遍历 list,用 tempList.contain()
public static List removeDuplicate(List list) {
    List tempList = new ArrayList();
    for (int i = 0; i < list.size(); i++) {
        if (!tempList.contains(list.get(i))) {
            tempList.add(list.get(i));
        }
    }
    return tempList;
}

//循环 list 中的所有元素然后删除重复
public static List removeDuplicate(List list) {
    for (int i = 0; i < list.size(); i++) {
        for (int j = list.size() - 1; j > i; j--) {
           if (list.get(i).equals(list.get(j))) {
                list.remove(list.get(i));
            }
        }
    }
    return list;
}
相关推荐
程序员buddha几秒前
Java面试八股文数据库篇
java·数据库·面试
Irissgwe3 分钟前
线程概念与控制
linux·开发语言·c++·线程
Yao.Li5 分钟前
python-pcl 安装排障流程
开发语言·python
小手cool5 分钟前
2025IDEA每次重启都得重载maven项目
java·maven·intellij-idea
SuperEugene6 分钟前
Vue3 组合式函数(Hooks)封装规范实战:命名 / 输入输出 / 复用边界 + 避坑|Vue 组件与模板规范篇
开发语言·前端·javascript·vue.js·前端框架
雨师@13 分钟前
多个golang版本如何切换的办法
开发语言·后端·golang
luyun02020214 分钟前
安卓端工具,不联网不授权
java·科技·figma
重庆小透明15 分钟前
【搞定面试之mysql】第二篇:事务和MVCC
java·后端·mysql·面试·职场和发展
春日见17 分钟前
自动驾驶的四个演进阶段
开发语言·人工智能·驱动开发·matlab·docker·计算机外设
毕设源码-朱学姐19 分钟前
【开题答辩全过程】以 乐康社区养老院居民信息管理系统的设计与实现为例,包含答辩的问题和答案
java