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複製程式碼