【java】集合操作中的retainAll的坑

 

JDK1.8

首先,set1中有值, set2中无值

import com.alibaba.fastjson.JSON;
import com.google.common.collect.Sets;
import java.util.*;



public class ListTest {

    public static void main(String[] args) throws Exception {

        Set<Long> set1 = new HashSet<>();
        set1.add(1L);
        set1.add(2L);

        Set<Long> set2 = new HashSet<>();


        Sets.SetView<Long> intersection = Sets.intersection(set1, set2);
        System.out.println(JSON.toJSONString(intersection));

        System.out.println(JSON.toJSONString(set1));
        System.out.println(JSON.toJSONString(set2));


        set1.retainAll(set2);
        System.out.println(JSON.toJSONString(set1));
        System.out.println(JSON.toJSONString(set2));

    }
}

结果:

 

 

 

 

再来一次,set2中放值

public static void main(String[] args) throws Exception {

        Set<Long> set1 = new HashSet<>();
        set1.add(1L);
        set1.add(2L);

        Set<Long> set2 = new HashSet<>();
        set2.add(1L);

        Sets.SetView<Long> intersection = Sets.intersection(set1, set2);
        System.out.println(JSON.toJSONString(intersection));

        System.out.println(JSON.toJSONString(set1));
        System.out.println(JSON.toJSONString(set2));


        set1.retainAll(set2);
        System.out.println(JSON.toJSONString(set1));
        System.out.println(JSON.toJSONString(set2));

    }

结果如下

 

posted @ 2021-06-08 11:07  Angel挤一挤  阅读(791)  评论(0编辑  收藏  举报