maven依赖

<dependency><groupId>com.google.guava</groupId><artifactId>guava</artifactId><version>30.1.1-jre</version>
</dependency>

1.创建集合

List<String> list = Lists.newArrayList();
List<Integer> list = Lists.newArrayList(1, 2, 3);
// 反转list
List<Integer> reverse = Lists.reverse(list);
System.out.println(reverse); // 输出 [3, 2, 1]
// list集合元素太多,可以分成若干个集合,每个集合10个元素
List<List<Integer>> partition = Lists.partition(list, 10);
Map<String, String> map = Maps.newHashMap();
Set<String> set = Sets.newHashSet();

2.黑科技集合

//1.Multimap 一个key可以映射多个value的HashMap
Multimap<String, Integer> map = ArrayListMultimap.create();
map.put("key", 1);
map.put("key", 2);
Collection<Integer> values = map.get("key");
System.out.println(map); // 输出 {"key":[1,2]}
// 还能返回你以前使用的臃肿的Map
Map<String, Collection<Integer>> collectionMap = map.asMap();
//省事,多简洁,省得你再创建 Map<String, List<Integer>>
//2.BiMap 一种连value也不能重复的HashMap
BiMap<String, String> biMap = HashBiMap.create();
// 如果value重复,put方法会抛异常,除非用forcePut方法
biMap.put("key","value");
System.out.println(biMap); // 输出 {"key":"value"}
// 既然value不能重复,何不实现个翻转key/value的方法,已经有了
BiMap<String, String> inverse = biMap.inverse();
System.out.println(inverse); // 输出 {"value":"key"}
//这其实是双向映射,在某些场景还是很实用的。
//3.Table 一种有两个key的HashMap
// 一批用户,同时按年龄和性别分组
Table<Integer, String, String> table = HashBasedTable.create();
table.put(18, "男", "yideng");
table.put(18, "女", "Lily");
System.out.println(table.get(18, "男")); // 输出 yideng
// 这其实是一个二维的Map,可以查看行数据
Map<String, String> row = table.row(18);
System.out.println(row); // 输出 {"男":"yideng","女":"Lily"}
// 查看列数据
Map<Integer, String> column = table.column("男");
System.out.println(column); // 输出 {18:"yideng"}
//4.Multiset 一种用来计数的Set
Multiset<String> multiset = HashMultiset.create();
multiset.add("apple");
multiset.add("apple");
multiset.add("orange");
System.out.println(multiset.count("apple")); // 输出 2
// 查看去重的元素
Set<String> set = multiset.elementSet();
System.out.println(set); // 输出 ["orange","apple"]
// 还能查看没有去重的元素
Iterator<String> iterator = multiset.iterator();
while (iterator.hasNext()) {System.out.println(iterator.next());
}
// 还能手动设置某个元素出现的次数
multiset.setCount("apple", 5);

Google Guava 工具类库相关推荐

  1. Google guava工具类库的介绍和使用

  2. Google Guava 工具集__3__ Ordering犀利的比较器 Object方法

    Google Guava 工具集 博客栏目链接:Google Guava 博客栏目 博客栏目涉及演示代码 GitHub 地址: 点击打开Guava 演示代码包 Ordering是Guava类库提供的一 ...

  3. 工作实践 之 Google Guava 工具集的使用 ,提高效率

    Google Guava是什么? Google Guava 工程包含了若干被Google的java项目广泛依赖的核心库,例如:集合,缓存,原生类型支持,并发库,通用注解,字符串,I/O等等.所有这些工 ...

  4. java工具谷歌工具-Google guava工具类的介绍和使用

    工具类 就是封装平常用的方法,不需要你重复造轮子,节省开发人员时间,提高工作效率.谷歌作为大公司,当然会从日常的工作中提取中很多高效率的方法出来.所以就诞生了guava. guava的优点: 高效设计 ...

  5. Java常用工具类库

    Java常用工具类库 1. java自带工具方法 2. apache commons工具类库 2.1 commons-lang,java.lang的增强版 2.2 commons-collection ...

  6. 借Google Guava学习发现和开发通用功能模块

    如何发现通用的功能模块? 很多人觉得做业务开发没有挑战,实际上,做业务开发也会涉及很多非业务功能的开发,比如我们前面讲到的 ID 生成器.性能计数器.EventBus.DI 容器,以及后面会讲到的限流 ...

  7. Java 那些最常用的工具类库 | 原力计划

    作者 |  Java 识堂 责编 | 屠敏 出品 | CSDN(ID:CSDNnews) Apache Commons Apache Commons有很多子项目,常用的项目如下: BeanUtils ...

  8. Guava学习笔记:Google Guava 类库简介

    Guava 是一个 Google 的基于java1.6的类库集合的扩展项目,包括 collections, caching, primitives support, concurrency libra ...

  9. [Google Guava] 2.4-集合扩展工具类

    原文链接 译文链接 译者:沈义扬,校对:丁一 简介 有时候你需要实现自己的集合扩展.也许你想要在元素被添加到列表时增加特定的行为,或者你想实现一个Iterable,其底层实际上是遍历数据库查询的结果集 ...

最新文章

  1. Rosetta | Rosetta简介
  2. 小白学统计(4)——数据集中趋势的描述
  3. [转]两分钟让你明白什么是ERP!
  4. html文字自动上翻,jQuery超酷文字随机翻转变换动画特效
  5. 【Linux病毒】阿里云+腾讯云服务器的 kdevtmpfsi(H2Miner挖矿蠕虫变种)病毒处理(5个详细步骤)
  6. Gamma分布和逆Gamma分布
  7. JVM :执行jinfo命令报错Can't attach symbolicator to the process
  8. 调用mysql1045解决_MySQL 1045错误的解决方法
  9. c语言基础知识点字母和含义,大学c语言必背基础知识_c语言基础知识大全
  10. 高中计算机高考时vb试题,高中信息技术vb试题及答案
  11. 单元格下拉全选快捷键_工作中常用的30个excel快捷键 太实用了
  12. Go语言解决读取文件乱码
  13. Django 项目编码问题1UnicodeDecodeError: ‘utf-8‘ codec can‘t decode byte 0xd2 in position 0: invalid contin
  14. SuperData最新报告:2017年VR硬件营收将达到36亿美元
  15. HTML 请输入关键字的搜索框,功能:输入时:框内的请输入关键字消失,鼠标移开时 框内的请输入关键字又重现
  16. 家庭NAS服务器(2)VM测试-Ubuntu组建Raid10
  17. 电脑应用图标变成白纸
  18. 浅析<router-view> v-slot事例
  19. 用硬实力,好作品,砸开阿里的前端开发金饭碗
  20. 总结和感慨人生两年(19.10-21.5)

热门文章

  1. 云效告诉你如何进行研发排期,高效达成目标
  2. hive 元数据 解释
  3. CDR X7 限时3折618年中大促,是时候出手了!
  4. 基于HTML美中华传统文化题材网页项目的设计与实现 (纯HTML+CSS制作中国茶文化网站)
  5. kibana 搜索语法
  6. [ukulele]入门指南
  7. 分析浊音、清音爆破音的时域及频域特性
  8. pdf压缩文件怎么压缩最小,pdf大小超过上传大小不能上传怎么压缩?
  9. 【问题解决】samba添加用户和密码时报错 Failed to add entry for user
  10. C# / VB 获取PDF文档的数字签名信息