• 【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));
    
        }

    结果如下

  • 相关阅读:
    第二部分 设计类型:第8章 方法
    centos7 网卡重命名
    centos7修改主机名
    修改umask值
    mysql表字段属性
    mysql基础操作
    mysql错误代码ERROR 1045 (转载)
    sed高级用法
    shell拷贝原文件到目标对应文件夹
    函数(位置传参)
  • 原文地址:https://www.cnblogs.com/sxdcgaq8080/p/14861965.html
Copyright © 2020-2023  润新知