JAVA強大的集合工具類谷歌Guava之Lists、Maps、Sets


Guava簡介:

Guava是一組核心庫,其中包括新的集合類型(如multimap和multiset)、不可變集合、圖形庫和用於併發、I/O、散列、原語、字符串等的實用程序!


將Guava添加到項目中:

Guava提供了兩種不同的“風味”:一種用於(Java 8+)JRE,另一種用於Android或Java 7,或與任何一種兼容的庫。這些口味在Maven版本字段中指定為28.2-jre或28.2-android。


使用Maven添加對Guava的依賴關係,使用以下命令:

<code><dependency>
<groupid>com.google.guava/<groupid>
<artifactid>guava/<artifactid>
<version>28.2-jre/<version>


/<dependency>/<code>

功能概述

Guava提供了能夠推斷範型的靜態工廠方法

<code>List<user> list = Lists.newArrayList();

Map map = Maps.newHashMap();

Set<user> set = Sets.newHashSet();/<user>/<user>/<code>可以方便地在初始化時就指定起始元素

<code>List<string> theseElements = Lists.newArrayList("a", "b", "c");

Set<string> set = Sets.newHashSet(theseElements);/<string>/<string>/<code>可以初始化集合大小


<code>//兩種對List的初始化大小,對於Java 7及更高版本,谷歌建議直接用new ArrayList(10)指定大小
//Guava提供的兩個方法將要廢棄。

//擴容方式是: 5L + x + x/10 = 16L(x = 10),在17的時候擴容
List<user> listCapcity = Lists.newArrayListWithCapacity(10);
//創建一個ArrayList實例來保存estimatedSize元素,
List<user> listExpected = Lists.newArrayListWithExpectedSize(10);


//擴容方式是:(int) ((float) 3 / 0.75F + 1.0F);
Set<user> setExpected = Sets.newHashSetWithExpectedSize(3);
/<user>/<user>/<user>/<code>