为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

繁华开满天机 2022-09-28 14:27:17
我有一个复杂的JsonObject,并希望使用嵌套的番石榴多地图存储值,因为密钥可以复制。问题是如果我有外部多地图的键,我该如何访问内部多地图。这就是我到目前为止所做的。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);但这行不通。我收到错误不兼容的类型。不知道我做错了什么。
查看完整描述

1 回答

?
呼啦一阵风

TA贡献1802条经验 获得超6个赞

我认为你想用的不是一个,而只是一个普通的.MultimapMap


您正在使用的(可能是那个,因为您没有说的那个)本质上是一个.Multimap<K,V>GuavaMap<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);


然后,如果您获得项目,则可以通过以下方式将其嵌套:zonetype1Map


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

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


查看完整回答
反对 回复 2022-09-28
  • 1 回答
  • 0 关注
  • 67 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号