gpt4 book ai didi

java - 如何从嵌套多重映射中获取第二个键和值

转载 作者:行者123 更新时间:2023-11-30 05:41:18 27 4
gpt4 key购买 nike

我有一个复杂的 JsonObject,并且想使用嵌套的 Guava 多重映射来存储值,因为键可以重复。问题是如果我有外部多重映射的 key ,如何访问内部多重映射。

这就是我到目前为止所做的。

Multimap<String, Multimap<String, List<ZoneOrders>>> dictionaryfinal;

Multimap<String, List<ZoneOrders>> dictionaryOrders;

dictionaryfinal = LinkedHashMultimap.create();
dictionaryOrders = LinkedHashMultimap.create();

然后我将如下所示的值存储在 json 响应的循环中:

dictionaryOrders.put(zoneland, zoneorder);                  
dictionaryfinal.put(zonetype, dictionaryOrders);

我可以使用轻松获取外部多重映射的键集

dictionaryfinal.keySet().

从上面获取其中一个键后,我想访问链接到所选键的内部多重映射。

这是我尝试过的,以便我可以访问内部多重映射:

Multimap<String, List<ZoneOrders>> ordinaryold  = LinkedHashMultimap.create();

ordinaryold = dictionaryfinal.get(item);

但这行不通。我收到类型不兼容的错误。不确定我做错了什么。

最佳答案

我认为你想要使用的不是 Multimap但只是一个正常的Map

Multimap<K,V>您正在使用的(大概是 Guava ,因为您没有说),本质上是 Map<K, Set<V>> .

如果您使用 Map你的嵌套应该有效:

Map<String, Map<String, List<ZoneOrders>>> dictionaryfinal = new LinkedHashMap<>();

Map<String, List<ZoneOrders>> dictionaryOrders1 = new LinkedHashMap<>();
dictionaryOrders1.put(zoneland, zoneorder);

dictionaryfinal.put(zonetype1, dictionaryOrders1);

Map<String, List<ZoneOrders>> dictionaryOrders2 = new LinkedHashMap<>();
dictionaryOrders2.put(zoneland2, zoneorder2);

dictionaryfinal.put(zonetype2, dictionaryOrders2);

然后,如果您获得 zonetype1 的元素你可以得到它的嵌套Map简单地通过:

 Map<String, List<ZoneOrders>> values1 = dictionaryfinal.get(zonetype1);   

values1将对应于 zonetype1 的内部多重映射仅。

关于java - 如何从嵌套多重映射中获取第二个键和值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55590438/

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