Java中List集合去除重复数据的方法

https://mp.weixin.qq.com/s/EBO4pfd6FEq_R-qZU73U9w

1. 循环list中的所有元素然后删除重复 

复制代码
public static List removeDuplicate(List list) {
    for (int i = 0; i < list.size() - 1; i++) {
        for (int j = list.size() - 1; j > i; j--) {
            if (list.get(j).equals(list.get(i))) {
                list.remove(j);
            }
        }
    }
    return list;
}
复制代码

2. 通过HashSet踢除重复元素

public static List removeDuplicate(List list) {
    HashSet h = new HashSet(list);
    list.clear();
    list.addAll(h);
    return list;
}

3. 删除ArrayList中重复元素,保持顺序

复制代码
// 删除ArrayList中重复元素,保持顺序    
public static void removeDuplicateWithOrder(List list) {
    Set set = new HashSet();
    List newList = new ArrayList();
    for (Iterator iter = list.iterator(); iter.hasNext();) {
        Object element = iter.next();
        if (set.add(element))
            newList.add(element);
    }
    list.clear();
    list.addAll(newList);
    System.out.println( " remove duplicate " + list);
}
复制代码

4.把list里的对象遍历一遍,用list.contain(),如果不存在就放入到另外一个list集合中

复制代码
public static List removeDuplicate(List list){
    List listTemp = new ArrayList();
    for(int i=0;i<list.size();i++){
        if(!listTemp.contains(list.get(i))){
            listTemp.add(list.get(i));
        }
    }
    return listTemp;
}
复制代码

 

posted @   Nausicaa0505  阅读(414)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
点击右上角即可分享
微信分享提示