在java程序開發中,一般采用MAP來存儲key-value的數據,在特殊應用場景下,key會出現重復而且不能覆蓋的情況,采用HashMap無法滿足需求,而采用IdentityHashMap時,如果不通過遍歷KEY的方式又無法獲取到指定KEY的值,有沒有什么其它好的方式來解決這樣的數據存儲呢?
1. 一般方法
Key-List實現方式如下:
Map<Key, List<Value>>
2. 通過guava實現
Guava是一種基於開源的Java庫,Google Guava源於2007年的"Google Collections Library"。這個庫是為了方便編碼,並減少編碼錯誤。這個庫用於提供集合,緩存,支持原語句,並發性,常見注解,字符串處理,I/O和驗證的實用方法。
<!-- https://mvnrepository.com/artifact/com.google.guava/guava --> <dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> <version>28.1-jre</version> </dependency>
當我們需要一個map中包含key為String類型,value為List類型的時候,以前我們是這樣寫的
Map<String,List<Integer>> map = new HashMap<String,List<Integer>>(); List<Integer> list = new ArrayList<Integer>(); list.add(1); list.add(2); map.put("aa", list); System.out.println(map.get("aa"));//[1, 2]
現在:
Multimap<String,Integer> map = ArrayListMultimap.create(); map.put("aa", 1); map.put("aa", 2); System.out.println(map.get("aa")); //[1, 2]
原文鏈接:https://blog.csdn.net/zyxhangiian123456789/java/article/details/91967387