gpt4 book ai didi

java - 嵌套 map 或相当于存储三元组

转载 作者:行者123 更新时间:2023-11-29 05:43:48 25 4
gpt4 key购买 nike

我必须将值存储到包含三个值的列表/映射中:

size  |   amount |  description
2,34 | 4 | "I'm a long String"
1,14 | 2 | "I'm another long String"

所以我考虑使用嵌套 map ,例如:

        Map<Double, Map<Integer,String>> a = new HashMap<Double, Map<Integer,String>>();

但是我怎样才能轻松地向该 map 添加条目呢?语法如

a.put(1,43, new Map.Entry<>(7,"9890"));

没有用,因为 Map 是抽象的。获取嵌套 map 的最佳方式是什么?

最佳答案

这会很乏味:

Map<Integer,String> val1 = a.get(2.34);
if (val1 == null) {
val1 = new TreeMap<Integer, String>();
a.put(2.34, val1);
}
val1.put(4, "I'm a long String");

我已将其更新为 TreeMap,因为您想要访问最小的元素。您还应该将 map “a”也更改为 TreeMap。

编辑 2

我在这里努力了,希望这是你要找的:)

import java.io.IOException;
import java.util.Map;
import java.util.TreeMap;
import java.util.TreeSet;

public class Main {

public static void main(String[] args) throws IOException {
TreeMap<Double, TreeMap<Integer, String>> map = new TreeMap<>();
add(2.5, 5, "wrong value 1", map);
add(3, 2, "wrong value 2", map);
add(2.5, 3, "good value", map);

System.out.println(map.pollFirstEntry().getValue().pollFirstEntry().getValue());
}
public static void add(double val1, int val2, String val3, TreeMap<Double, TreeMap<Integer, String>> map) {
TreeMap<Integer,String> subMap = map.get(val1);
if (subMap == null) {
subMap = new TreeMap<Integer, String>();
map.put(val1, subMap);
}
subMap.put(val2, val3);
}

}

关于java - 嵌套 map 或相当于存储三元组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16527767/

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