Guava中集合工具简介
2019-01-24 本文已影响0人
王凯_6a8b
前言
Java开发人员想必都听说过Guava的大名。它是Google提供的开源的Java核心增强库,包含集合、缓存、原生类型支持、并发库、通用注解、字符串处理、I/O 等等内容。Guava能够提高编码效率,减少编码错误,其应用范围非常广泛。本篇文章,主要介绍Guava(本文使用的Guava版本为:26.0)提供的集合相关的工具类,希望能够为大家在工作中操作集合时提供另一种更高效的选择。
新集合类型
Guava引入了很多JDK没有的、但实际使用场景上明显有用的新集合类型。
BiMap
- 关于
BiMap提供了一种新的集合类型,它提供了key和value的双向关联的数据结构。通常情况下,我们在使用Java的Map时,往往是通过key来查找value的,但是如果我们想根据value值查找key时,我们就需要额外编写一些代码来实现这个功能。BiMap为我们实现了这个功能。 - 实现
实现 | key-value的实现 | value-key的实现 |
---|---|---|
HashBiMap | HashMap | HashMap |
ImmutableBiMap | ImmutableMap | ImmutableMap |
EnumBiMap | EnumMap | EnumMap |
EnumHashBiMap | HashMap | HashMap |
- 使用示例
@Test
public void test1(){
BiMap<String,String> weekNameMap = HashBiMap.create();
weekNameMap.put("星期一","Monday");
weekNameMap.put("星期二","Tuesday");
weekNameMap.put("星期三","Wednesday");
weekNameMap.put("星期四","Thursday");
weekNameMap.put("星期五","Friday");
weekNameMap.put("星期六","Saturday");
weekNameMap.put("星期日","Sunday");
System.out.println("星期日的英文名是" + weekNameMap.get("星期日"));
System.out.println("Sunday的中文是" + weekNameMap.inverse().get("Sunday"));
}
- 源码