https://www.yiibai.com/guavahtml
https://wizardforcel.gitbooks.io/guava-tutorial/content/1.htmljava
checkArgument(i < j, "Expected i < j, but %s > %s", i, j);
checkNotNull(a, "parameter is Null");
equals,避免拋出NullPointerExceptiongit
Objects.equal("a", "a"); // returns true Objects.equal(null, "a"); // returns false Objects.equal("a", null); // returns false Objects.equal(null, null); // returns true
hashCode, segmentfault
System.out.println(Objects.hashCode("a","b","c"));
Person person=new Person("peida",23);
System.out.println(Objects.hashCode(person));app
可設置過時的cacheyii
http://www.javashuo.com/article/p-avaquyum-ht.htmlui
http://ifeve.com/google-guava-collectionutilities/google
com.google.common.collect.Mapsspa
更簡單的建立,newLinkedHashMap(),newConcurrentMap()code
Map<String, String> aNewMap = Maps.newHashMap();
Lists,Sets
List<TypeThatsTooLongForItsOwnGood> list = Lists.newArrayList()
com.google.common.collect.Multimap
//Map<String, List<String>>
// lower -> a, b, c
// upper -> A, B
Multimap<String,String> multimap = ArrayListMultimap.create();
multimap.put("lower", "a");
multimap.put("lower", "b");
multimap.put("lower", "c");
multimap.put("upper", "A");
multimap.put("upper", "B");
Map<String, Collection<String>> map = multimap.asMap();
com.google.common.collect.Multiset
多個重複的值
Multiset<String> multiset = HashMultiset.create();
multiset.add("a");
multiset.add("a");
multiset.add("c");
Set<String> set = multiset.elementSet();
ImmutableMap,比java直接構建靜態map要簡單
Map<String, Integer> salary = ImmutableMap.<String, Integer> builder()
.put("John", 1000)
.put("Jane", 1500)
.put("Adam", 2000)
.put("Tom", 2000)
.build();
Table
當你想使用多個鍵作索引的時候,你可能會用相似Map<FirstName, Map<LastName, Person>>的實現,這種方式很醜陋,使用上也不友好。Guava爲此提供了新集合類型Table
Table<Vertex, Vertex, Double> weightedGraph = HashBasedTable.create();
weightedGraph.put(v1, v2, 4);
weightedGraph.put(v1, v3, 20);
weightedGraph.put(v2, v3, 5);
weightedGraph.row(v1); // returns a Map mapping v2 to 4, v3 to 20
weightedGraph.column(v3); // returns a Map mapping v1 to 20, v2 to 5
com.google.common.base.Joiner
Joiner joiner = Joiner.on("; ").skipNulls(); return joiner.join("Harry", null, "Ron", "Hermione");
com.google.common.base.Splitter
Splitter.on(',') .trimResults() .omitEmptyStrings() .split("foo,bar,, qux");
com.google.common.hash.Hashing
md5sha256sha512sha1murmur3_128murmur3_32goodFastHash