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

摘要:
JDK1.8首先,set1中有一个值,而set2 importcom.alibaba.fastjson中没有值。JSON;importcom.google.common.collect。套;importjava.util.*;publicclassListTest{publicstaticvoidmain(String[]args)throwsException{Set<Long>set1=newHa

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));

    }
}

结果:

【java】集合操作中的retainAll的坑第1张

再来一次,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));

    }

结果如下

【java】集合操作中的retainAll的坑第2张

免责声明:文章转载自《【java】集合操作中的retainAll的坑》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇解决网站打开显示Service Unviable(应用程序池自动停止)修改Java标准库源码下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

ES系列二、Mac 通过docker搭建ELK日志收集系统

#检查是否安装了elkdockerimages#清理以前版本的dockerrmi$#安装elk 6.8.0版本的docker pullslasticsearch:6.8.0 dockerpullskibana:68.0dockerpullogstash:68.00#检查dockerimages2是否查看拉取的ElasticSearch:操作命令:docker...

移动端媒体查询的一些尺寸参考

device-width是设备实际的宽度,不会随着屏幕的旋转而改变,因此并不适合开发响应式网站。比如iphone5s的屏幕分辨率宽为640,由于retina显示策略,当scale设置为1的时候,对应的media中取到的width为320,当scale设置为0.5的时候,width为640,而device-width始终是320。总结1.device-widt...

ClickHouse之访问权限控制

Ck当前只有select和insert。这是我刚才提到的:60cd41aedc4e47e8883682b416109e7b7e345e15ecc63c2c98ecdab5e8e053a只读defaultdefault此部分意味着添加具有只读权限的dba用户。允许访问的数据库是默认值。源IP不受限制::/0尝试以dba用户身份登录:clickhouse-cli...

用VBA去除Excel工作表保护密码

今天帮同事解决个EXCEL问题,现记在这,以作备忘现象:想要修改保护单元格的内容,在使用“工具”菜单“保护”子菜单的“撤消工作表保护”命令,这时要求输入密码。"ExitSubEndIfFori=65To66:Forj=65To66:Fork=65To66Forl=65To66:Form=65To66:Fori1=65To66Fori2=65To66:Fori...

Tomcat和JDK版本的对应关系

当我们讨论Tomcat和JDK版本之间的对应关系时,我们实际上讨论了两个问题。对于第一个问题,您可以通过官方网站上的图的最后一列获得答案:因此,如果您安装Tomcat 7,则需要安装JDK1.6和更高版本才能正常启动Tomcat。对于第二个问题,我们应该明确第一个问题和第二个疑问有相同的基本答案:低版本JDK不能运行高版本JDK编译的代码。因此,如果您安装T...

deb包制作

简介deb编包的本质是:将编译过程自动化,并生成可执行程序,使得可以通过apt-get中安装。DEB源码介绍DEB包的源码是由:程序源码+debian目录构成,其中debian目录中存放着打包成DEB文件所需的全部文件。通过debian目录中的文件可以定制软件包的行为。修改rules如果要安装二进制等文件,则需要覆写rules-˃dh_installvimd...