Google於去年底Release google-collections v1.0版,感覺和Apache的commons-collection差不多。好用就拿來用,反正免錢。有幾個工具如下,前提需import com.google.common.collect.*以及可能需要import java.util.*:
1.Collection Class有工廠類別產出,不再用new,例:
HashSet<String> hashSet = Sets.newHashSet();
LinkedHashSet<String> linkedHashSet = Sets.newLinkedHashSet();
ArrayList<String> arrayList = Lists.newArrayList();
LinkedList<String> linkedList = Lists.newLinkedList();
2.提供不可變(Immutable)的Collection Class,例:
ImmutableSet<Integer> immutableSet = ImmutableSet.of(1, 2, 3, 4, 5);
immutableSet.add( 99 ) 或 immutableSet.set( 1, 99 )都會丟出java.lang.UnsupportedOperationException
3.提供Muilt collection class,例:
Multimap<String, String> multiMap = new ArrayListMultimap.create(); // 遵照第一條不用new。
multiMap.put("Jemmy", "Brother"); multiMap.put("Jemmy", "Employee"); // Jemmy具兩種角色
Collection<String> roles = multiMap.get("Jemmy"); // 取回不是String, 而是個集合
4.Concurrent開頭的類別名具有並行功能,替代舊的Vector、Hashtable類別,例:ConcurrentHashMultiset。
以上舉例,均取自http://www.infoq.com/cn/news/2010/01/google_collections_10
其Maven設定如下:
<dependency>
<groupId>com.google.collections</groupId>
<artifactId>google-collections</artifactId>
<version>1.0</version>
</dependency>
留言列表