gpt4 book ai didi

java - 允许重复键以及维护插入顺序的映射

转载 作者:行者123 更新时间:2023-11-30 06:55:37 25 4
gpt4 key购买 nike

目前我正在使用维护插入顺序的 LinkedHashMap。

我使用的 LinkedHashMap 的语法:

private LinkedHashMap<String, String> linkedHashMap = new LinkedHashMap<String, String>();
linkedHashMap.put("R1", "Data1");
linkedHashMap.put("R2", "Data2");
linkedHashMap.put("R3", "Data3");
linkedHashMap.put("R4", "Data4");

哪个工作正常。但是我有必须使用重复键的地方,而且我还维护了插入数据。

例如:

private LinkedHashMap<String, String> linkedHashMap = new LinkedHashMap<String, String>();
linkedHashMap.put("R1", "Data1");
linkedHashMap.put("R2", "Data2");
linkedHashMap.put("R1", "Data3");
linkedHashMap.put("R2", "Data4");

当我试图在 linkedHaphMap 中保留重复数据时,它会删除重复数据并仅保留一个数据。

那么如何在java中插入重复数据并维护插入顺序呢?实现我的案例的方法是什么?

最佳答案

试试这个:

public class Test {

public static void main(String[] args) {
Map<String, List<String>> map = new LinkedHashMap<>();
put(map, "R1", "Data1");
put(map, "R2", "Data2");
put(map, "R1", "Data3");
put(map, "R2", "Data4");

System.out.println(map); // prints {R1=[Data1, Data3], R2=[Data2, Data4]}
}

public static void put(Map<String, List<String>> map, String key, String value) {
if (map.get(key) == null) {
List<String> list = new ArrayList<>();
list.add(value);
map.put(key, list);
} else {
map.get(key).add(value);
}
}
}

关于java - 允许重复键以及维护插入顺序的映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35129071/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com