《Google Guava—集合篇》

uniqueview發表於2018-03-01

1.雙向map:BiMap

JDK提供的map可以根據key找到value,而BiMap可以根據value找到key。

在建立biMap的時候內部維護2個map,

BiMap biMap = HashBiMap.create();
biMap.put("id", "email");
System.out.println(biMap.get("id"));// name
System.out.println(biMap.inverse().get("email"));// hehe
//biMap.inverse().inverse() == biMap()複製程式碼

2.一對多Map:MultiMap

multiMap.get("brand") // 返回型別為:Collection複製程式碼
Multimap<Object, Object> multiMap = ArrayListMultimap.create();
multiMap.put("brand","apple");
multiMap.put("brand","sony");
multiMap.put("brand","google");
System.out.println(multiMap.get("brand")); // [apple, sony, google]
複製程式碼

3.多個key:Table

需要儲存所有學生多門課程成績:Map<String, Map<String, Integer>> map = new ..

table.row() // 返回型別為: map

table.rowKeySet() // 返回型別:Set 

Table<String,String,Integer> table = HashBasedTable.create();
table.put("張三","語文",93);
table.put("張三","數學",100);
table.put("張三","英語",99);

table.put("李四","語文",98);
table.put("李四","數學",90);
table.put("李四","英語",89);
System.out.println(table.row("李四"));       // {語文=98, 數學=90, 英語=89}
System.out.println(table.get("張三","英語")); // 99
System.out.println(table.get("張三","體育")); // null複製程式碼


相關文章