Guava 操作 集合
简介
Guava 项目是 Google 公司开源的 Java 核心库,它主要是包含一些在 Java 开发中经常使用到的功能,如数据校验、不可变集合、计数集合,集合增强操作、I/O、缓存、字符串操作等。并且 Guava 广泛用于 Google 内部的 Java 项目中,也被其他公司广泛使用,甚至在新版 JDK 中直接引入了 Guava 中的优秀类库,所以质量毋庸置疑。
Lists
public static void main(String[] args) {//指定初始大小(数据多的话会自动扩容)ArrayList<String> list0 = Lists.newArrayListWithCapacity(4);System.out.println(list0);ArrayList<String> list1 = Lists.newArrayList(); //能够推断泛型for(int i = 0;i<4;i++){list1.add(UUID.randomUUID().toString().substring(4));}list1.forEach(System.out::println);//传入多个参数ArrayList<String> list2 = Lists.newArrayList("aa", "bb", "cc");list2.forEach(System.out::println);//传入数组ArrayList<String> list3 = Lists.newArrayList(new String[]{"aa", "bb", "cc"});list3.forEach(System.out::println);//传入集合ArrayList<String> list4 = Lists.newArrayList(list3);list4.forEach(System.out::println);
}
Sets
public static void main(String[] args) {Set<Integer> set1 = Sets.newHashSet(1, 2, 3);Set<Integer> set2 = Sets.newHashSet(3, 4, 5);System.out.println("并集:" + Sets.union(set1, set2));System.out.println("交集:" + Sets.intersection(set1, set2));System.out.println("差集(set1有set2没有):" + Sets.difference(set1, set2));System.out.println("并集-交集:" + Sets.symmetricDifference(set1, set2));System.out.println("笛卡尔积:" + Sets.cartesianProduct(set1, set2));System.out.println("全部子集:");Sets.powerSet(set1).forEach(System.out::println);
}
结果:
Maps
```javapublic static void main(String[] args) {HashMap<String,Integer> map1 = Maps.newHashMap();// 自动推断泛型for (int i = 0; i < 3; i++) {map1.put(UUID.randomUUID().toString().substring(4),i+1);}map1.forEach((k,v)-> System.out.println(k+" "+v));//传入Map构建MapHashMap<String, Integer> map2 = Maps.newHashMap(map1);map2.forEach((k,v)-> System.out.println(k+" "+v));//直接指定大小HashMap<String,Integer> map3 = Maps.newHashMapWithExpectedSize(2);map3.put("zhangsan",18);map3.put("lisi",22);map3.forEach((k,v)-> System.out.println(k+" "+v));//有序MapLinkedHashMap<String,Integer> map4 = Maps.newLinkedHashMap();map4.put("zhangsan",18);map4.put("lisi",22);map4.put("wanger",19);map4.forEach((k,v)-> System.out.println(k+" "+v));}
结果:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200909161058294.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2xpYW5naGVjYWk1MjE3MTMxNA==,size_16,color_FFFFFF,t_70#pic_center)
Guava 操作 集合相关推荐
- java集合类的一些总结——Arrays.asList和Guava操作集合
使用背景 总结一下最近项目中使用到集合的两个点,一个是Arrays.asList这个方法使用的坑,另一个是利用Guava的Sets工具类去求并交集. 使用总结 Arrays.asList的坑 先上结论 ...
- 1.8 Collections类操作集合详解——排序,查找,复制
Collections类操作集合详解 Collections 类是 Java 提供的一个操作 Set.List 和 Map 等集合的工具类. Collections 类提供了许多操作集合的静态方法,借 ...
- python day2 python基础 列表、元组操作 字符串操作 字典操作 集合操作 文件操作 字符编码与转码...
本节内容 列表.元组操作 字符串操作 字典操作 集合操作 文件操作 字符编码与转码 1. 列表.元组操作 列表是我们最以后最常用的数据类型之一,通过列表可以对数据实现最方便的存储.修改等操作 定义列表 ...
- Collections类操作集合详解
Collections 类是 Java 提供的一个操作 Set.List 和 Map 等集合的工具类.Collections 类提供了许多操作集合的静态方法,借助这些静态方法可以实现集合元素的排序.查 ...
- 操作集合的工具类Collections
1 操作集合的工具类Collections Java提供了一个操作Set.List和Map等集合的工具类:Collections,该工具类里提供了大量方法对集合元素进行排序.查询和修改等操 ...
- java操作集合中 concurrentModifyException 异常的原因分析
java操作集合中 concurrentModifyException 异常的原因分析 参考文章: (1)java操作集合中 concurrentModifyException 异常的原因分析 (2) ...
- mysql查询触发器_mysql查看所有触发器以及存储过程等操作集合【转】
1. mysql查询所有表: SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = '数据库名' AND TAB ...
- Java8种Stream流相关操作——集合的筛选、归约、分组、聚合
过滤.筛选 filter skip /*** 过滤 筛选*/@Testpublic void test2(){List<String> list = Arrays.asList(&qu ...
- 面向对象语言(JAVA)——工具类(Collections(操作集合)代码实现理解)
工具类,顾名思义就是Java中工具的类. Collections 类是 Java提供的一个操作 Set.List 和 Map 等集 合的工具类.Collections 类提供了许多操作集合的静态方 法 ...
- predicate/Stream操作集合
/*** 操作集合*/import java.util.Collection; import java.util.HashMap; import java.util.function.Predicat ...
最新文章
- python3 串行并列实际应用
- 计算机专业的学生该选择日后的人生道路?继续从事IT还是考公务员……
- 2.1.5编码与调制(1)
- 用python庆祝生日_奶茶妹妹章泽天欢度27岁生日,甜蜜微笑庆生,美到登热搜第一...
- 烂泥:LVM学习之LVM基础
- 部分添加epel源失败的可以试试直接把mirror站网址写到baseurl里
- Educoder Basemap和seaborn 第三关:Basemap
- paip.提升用户体验---上传文件图片命名
- 18个国外优质图片素材
- 深度精简版 Deepin XP Lite 完美精简版 5.2|5.3|5.4|5.5|5.6|5.7|5.8 迅雷下载
- 帝国PHP二次开发,帝国CMS二次开发有哪些注意事项
- 日程安排工具Calendso
- 做前端网页需要用网页框架吗
- 电影排行榜(requests + bs4 scrapy)
- 【Axure教程】拖动排序——扣款顺序
- 第十三课功能键之开根号——C#计算器编程教学
- 使用无界面方式登录人人网
- PS 图片编辑软件软件安装包下载地址及安装教程
- 【QT|趣谈】最详细的信号槽机制介绍!
- 等价无穷小的精度问题
热门文章
- golang后端php前端,意外的golang(2018新年后端框架简单对比)
- mysql 基础 打油诗
- MCtalk对话尚德机构:AI讲师,假套路还是真功夫?
- 增量式编码器和绝对式编码器,ABI信号和UVW信号、编码器PWM信号
- Python查询天数
- ESXI上检测磁盘状态
- Job for named.service failed because the control process exited with error code.
- 如何在线查询学历证书
- Android之传感器(三)方向传感器
- validity.valueMissing无论写不写文本都为false