【Java】List去重 / 删除ArrayList中重复元素,保持顺序 / 提取两个list中不同的元素

 

 一、删除ArrayList中重复元素,保持顺序

复制代码
    /**
     * 删除ArrayList中重复元素,保持顺序
     *
     * @param list 有重复的list
     * @return 去重后的list
     */
    public static List 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);
        return list;
    }
复制代码

核心

 

 

 

 

 二、提取两个list中不同的元素

复制代码
    /**
     * 提取两个list中不同的元素
     * <p>
     * list1=["1","2","3"]
     * list2=["1","2","3","4"]
     * 则返回 ["4"]
     *
     * @param list1
     * @param list2
     * @return
     */
    public static ArrayList<String> getDifference(ArrayList<String> list1, ArrayList<String> list2) {
        ArrayList<String> newData = new ArrayList<>();
        for (String o : list1) {
            boolean isHave = true;
            for (String o1 : list2) {
                if (o.equals(o1)) {
                    isHave = false;
                }
            }
            if (isHave) {
                newData.add(o);
            }
        }
        return newData;
    }
复制代码

 

posted @   淡怀  阅读(520)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示

目录导航