guava是什么意思英语 guava是什么水果( 二 )


在线演示源码:https://github.com/wangmaoxiong/apache-study/blob/master/src/main/java/com/wmx/guava/MultimapTest.java
BiMap 双向映射
1、将值映射回键的传统方法是维护两个独立的映射,并使它们保持同步,但这很容易产生错误,并且当映射中已经存在一个值
Map<String, Integer> nameToId = Maps.newHashMap();
Map<Integer, String> idToName = Maps.newHashMap();
nameToId.put("Bob", 42);
idToName.put(42, "Bob");
2、BiMap 提供了多种实现:
键值映射实现值键映射实现对应BiMapHashMapHashMapHashBiMapImmutableMapImmutableMapImmutableBiMapEnumMapEnumMapEnumBiMapEnumMapHashMapEnumHashBiMap
在线演示源码:https://github.com/wangmaoxiong/apache-study/blob/master/src/main/java/com/wmx/guava/BiMapTest.java
Table 表结构数据
1、当试图一次在多个键上建立索引时,您将得到类似 Map<FirstName,Map<LastName,Person>> 的代码,这很难看,而且使用起来很尴尬 。Guava 提供了一个新的集合类型 Table,它支持任何“row”类型和“column”类型的这个用例 。
2、Table 提供了多种实现:
HashBasedTable:基本上是由 HashMap<R,HashMap<C,V>> 支持的 。TreeBasedTable:基本上是由 TreeMap<R,TreeMap<C,V>> 支撑的 。ImmutableTableArrayTable:要求在构造时指定行和列的完整范围,但在表密集时由二维数组支持以提高速度和内存效率,ArrayTable的工作原理与其他实现有些不同
在线演示源码:https://github.com/wangmaoxiong/apache-study/blob/master/src/main/java/com/wmx/guava/TableTest.java
ClassToInstanceMap 类型映射到实例
1、有时 key 并不是单一的类型,而是多种类型,Guava 为此提供了 ClassToInstanceMap,key 可以是多种类型,value 是此类型的实例 。
2、ClassToInstanceMap 的实现有: MutableClassToInstanceMap 和 ImmutableClassToInstanceMap 的实现 。
在线演示源码:https://github.com/wangmaoxiong/src/main/java/com/wmx/guava/ClassToInstanceMapTest.java
JDK 集合辅助工具类
1、任何有 JDK 集合框架经验的程序员都知道并喜欢其中提供的实用程序 java.util.Collections,Guava 提供了许多适用于集合的静态方法实用程序 。
接口属于 JDK 还是 Guava对应 Guava APICollectionJDKCollections2ListJDKListsSetJDKSetsSortedSetJDKSetsMapJDKMapsSortedMapJDKMapsQueueJDKQueuesMultisetGuavaMultisetsMultimapGuavaMultimapsBiMapGuavaMapsTableGuavaTables
Lists 在线演示:https://github.com/wangmaoxiong/apache-study/blob/master/src/main/java/com/wmx/guava/ListsTest.java
Sets 在线演示:https://github.com/wangmaoxiong/apache-study/blob/master/src/main/java/com/wmx/guava/SetsTest.java
JDK 基本类型辅助工具类
1、Guava 为 Java JDK 的基本类型提供了实用程序类:
基本类型Guava 辅助工具类byteBytes, SignedBytes, UnsignedBytesshortShortsintInts, UnsignedInteger, UnsignedIntslongLongs, UnsignedLong, UnsignedLongsfloatFloatsdoubleDoublescharCharsbooleanBooleans
nts 在线演示源码:https://github.com/wangmaoxiong/apache-study/blob/master/src/main/java/com/wmx/guava/IntsTest.java
doubles 在线演示源码:https://github.com/src/main/java/com/wmx/guava/DoublesTest.java
booleans 在线演示源码:https://github.com/src/main/java/com/wmx/guava/BooleansTest.java
其它类型同理 。另外,关注Java知音公众号,回复“后端面试”,送你一份面试题宝典!
JDK 字符串辅助工具类
1、Strings 类中提供了少数几个常用的符串实用程序 。
在线演示源码:https://github.com/wangmaoxiong/apache-study/blob/master/src/main/java/com/wmx/guava/StringsTest.java
2、Joiner 是连接器,用于连接 java.lang.Iterable、java.util.Iterator、java.lang.Object[] 中的元素 。
在线演示源码:https://github.com/wangmaoxiong/apache-study/blob/master/src/main/java/com/wmx/guava/JoinerTest.java

推荐阅读