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—集合篇》GoGuava
- 利用apache Collections和google guava對list和map進行過濾和排序ApacheGoGuava排序
- google guava集合之MultisetGoGuava
- (翻譯)Google Guava CacheGoGuava
- Google Guava 使用者指南 —- 初始Guava類庫GoGuava
- Google MapGo
- Google guava原始碼之EventBusGoGuava原始碼
- google guava中定義的String操作GoGuava
- Google guava工具類的介紹和使用GoGuava
- Google Guava Stopwatch(計時器)GoGuava
- Google Guava官方教程(中文版)GoGuava
- 5個 Google Guava 鮮為人知的特性GoGuava
- Google Map 符號Go符號
- 使用Google Guava快樂程式設計GoGuava程式設計
- google Guava包RateLimiter使用最佳實踐GoGuavaMIT
- 使用Java和Google Guava簡化開發JavaGoGuava
- google map aip使用例子程式GoAI
- Google Guava 在實際場景中的應用封裝GoGuava封裝
- Guava中這些Map的騷操作,讓我的程式碼量減少了50%Guava
- 使用Google Map API v2GoAPI
- Google向密碼宣戰 - google戒指Go密碼
- vue 雙向繫結(v-model 雙向繫結、.sync 雙向繫結、.sync 傳物件)Vue物件
- 雙向lstm原理
- 揭密 Vue 的雙向繫結Vue
- javascript中的雙向繫結JavaScript
- Java記憶體快取-通過Google Guava建立快取Java記憶體快取GoGuava
- vue雙向繫結的原理及實現雙向繫結MVVM原始碼分析VueMVVM原始碼
- grpc雙向流RPC
- 雙向迭代介面:ListIterator
- UDP雙向通訊UDP
- 雙向連結串列
- GuavaGuava
- java 雙向證書請求 雙向驗證機制 轉載Java
- 從單向到雙向資料繫結
- Vue雙向繫結初探Vue
- 雙向通訊之websocketWeb
- 雙向通訊之SSE