List工具类

package com.yc.dataProcess.baseUtil;

import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;

import static java.util.stream.Collectors.toList;

public class ListUtil {

    /**
     * List去重
     *
     * @param list
     * @return
     */
    public static List<String> removeDuplicate(List<String> list) {
        HashSet<String> h = new HashSet<String>(list);
        list.clear();
        list.addAll(h);
        return list;
    }

    /**
     * 两个list<String>取交集
     * */
    public static List<String> intersection(List<String> list1, List<String> list2){
        List<String> intersection = list1.stream().filter(item -> list2.contains(item)).collect(toList());
        return intersection;
    }

    /**
     * 两个list<String>取差集
     * 多在前 少在后
     * */
    public static List<String> reduce1(List<String> list1, List<String> list2){
        List<String> reduce1 = list1.stream().filter(item -> !list2.contains(item)).collect(toList());
        return reduce1;
    }

    /**
     * 两个list<String>取并集
     * */
    public static List<String> listAll(List<String> list1, List<String> list2){
        List<String> listAll = list1.parallelStream().collect(toList());
        List<String> listAll2 = list2.parallelStream().collect(toList());
        listAll.addAll(listAll2);
        return listAll;
    }

    /**
     * 两个list<String>去重取并集
     * */
    public static List<String> listAllDistinct(List<String> list1, List<String> list2){
        List<String> listAll = list1.parallelStream().collect(toList());
        List<String> listAll2 = list2.parallelStream().collect(toList());
        listAll.addAll(listAll2);
        List<String> listAllDistinct = listAll.stream().distinct().collect(toList());
        return listAllDistinct;
    }

    public static void main(String[] args) {
        List<String> list1 = new ArrayList<String>();
        list1.add("1");
        list1.add("2");
        list1.add("3");
        list1.add("5");
        list1.add("6");

        List<String> list2 = new ArrayList<String>();
        list2.add("2");
        list2.add("3");
        list2.add("7");
        list2.add("8");
        System.err.println(reduce1(list1,list2));
    }
}

posted @ 2021-02-05 09:50  GraceYang  阅读(451)  评论(0)    收藏  举报