java中key-value數據有重復KEY如何存儲


在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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM