[Java usage] Java 8 two List sets to take intersection, union, difference, deduplication union

In the process of business development, the mutual value of two List collections is often used, so record it here for subsequent use~~~

public class ListTest {

    public static void main(String[] args) {

        ArrayList<String> listA = CollectionUtil.toList("a", "b", "c", "d", "e");
        ArrayList<String> listB = CollectionUtil.toList( "b", "c", "d", "e", "f");
        System.out.println("listA = " + listA);
        System.out.println("listB = " + listB);
        
        // listA和listB的差集(listA - listB)
        List<String> collect = listA.stream().filter(item -> !listB.contains(item)).collect(Collectors.toList());
        System.out.println("listA - listB的差集 = " + collect);

        // listA和listB的差集(listB - listA)
        List<String> collect1 = listB.stream().filter(item -> !listA.contains(item)).collect(Collectors.toList());
        System.out.println("listB - listA的差集 = " + collect1);

        // listA和listB交集
        List<String> intersection = listA.stream().filter(listB::contains).collect(Collectors.toList());
        System.out.println("listA和listB交集 = " + intersection);

        // listA和listB并集(不去重)
        listA.addAll(listB);
        System.out.println("listA和listB并集 = " + listA);

        // listA和listB并集(去重)
        List<String> distinctList = listA.stream().distinct().collect(Collectors.toList());
        System.out.println("listA和listB去重并集 = " + distinctList);
    }
}

The running result is:

 

 

end!

Guess you like

Origin blog.csdn.net/weixin_44299027/article/details/112841905