google guava的BiMap:雙向Map
我們知道Map是一種鍵值對對映,這個對映是鍵到值的對映,而BiMap首先也是一種Map,他的特別之處在於,既提供鍵到值的對映,也提供值到鍵的對映,所以它是雙向Map.
想象這麼一個場景,我們需要做一個星期幾的中英文表示的相互對映,例如Monday對應的中文表示是星期一,同樣星期一對應的英文表示是Monday。這是一個絕好的使用BiMap的場景。
package cn.outofmemory.guava.collection; import com.google.common.collect.BiMap; import com.google.common.collect.HashBiMap; public class BiMapDemo { public static void main(String[] args) { BiMapweekNameMap = HashBiMap.create(); weekNameMap.put("星期一","Monday"); weekNameMap.put("星期二","Tuesday"); weekNameMap.put("星期三","Wednesday"); weekNameMap.put("星期四","Thursday"); weekNameMap.put("星期五","Friday"); weekNameMap.put("星期六","Saturday"); weekNameMap.put("星期日","Sunday"); System.out.println("星期日的英文名是" + weekNameMap.get("星期日")); System.out.println("Sunday的中文是" + weekNameMap.inverse().get("Sunday")); } }
BiMap的值鍵對的Map可以透過inverse()方法得到。
BiMap的常用實現有:
HashBiMap: key 集合與 value 集合都有 HashMap 實現
EnumBiMap: key 與 value 都必須是 enum 型別
ImmutableBiMap: 不可修改的 BiMap
原文連結:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/132/viewspace-2805662/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- [Guava] Google Guava 集合工具類GuavaGo
- google guava集合之MultisetGoGuava
- google guava中定義的String操作GoGuava
- Google guava原始碼之EventBusGoGuava原始碼
- Google Guava Stopwatch(計時器)GoGuava
- Google guava工具類的介紹和使用GoGuava
- Google Guava官方教程(中文版)GoGuava
- google Guava包RateLimiter使用最佳實踐GoGuavaMIT
- 使用Google Guava快樂程式設計GoGuava程式設計
- 使用Java和Google Guava簡化開發JavaGoGuava
- Google Guava 在實際場景中的應用封裝GoGuava封裝
- Guava中這些Map的騷操作,讓我的程式碼量減少了50%Guava
- Java記憶體快取-通過Google Guava建立快取Java記憶體快取GoGuava
- vue 雙向繫結(v-model 雙向繫結、.sync 雙向繫結、.sync 傳物件)Vue物件
- 雙向lstm原理
- grpc雙向流RPC
- 揭密 Vue 的雙向繫結Vue
- 雙向連結串列
- https雙向認證HTTP
- UDP雙向通訊UDP
- 雙向迭代介面:ListIterator
- java 雙向證書請求 雙向驗證機制 轉載Java
- 快速向 Google Chat 傳送訊息Go
- HTTPS連線建立過程(單向&雙向)HTTP
- 從單向到雙向資料繫結
- Keytool配置 Tomcat的HTTPS雙向認證TomcatHTTP
- 雙向繫結的極簡實現
- PostgreSQL雙向複製教程SQL
- BRI 融資能力:“雙向”
- 雙向通訊之websocketWeb
- 雙向通訊之SSE
- 9206下配置雙向stream
- Vue雙向繫結初探Vue
- vue雙向繫結原理Vue
- Guava futureGuava
- Guava CacheGuava
- 雙向連結串列的功能實現(初版
- vue中的雙向資料繫結原理Vue