【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 @ 2022-04-02 16:20  淡怀  阅读(509)  评论(0编辑  收藏  举报