我正在尝试迭代,List<Map<String, Object>>并想检查代码是否“已批准”-如果代码的值已“批准”,那么我想在另一个hashMap 中将“ id”添加为Key,将“ date”添加为Value。
List<Map<String, Object>> prodIds = ((List<Map<String, Object>>) myIds.get("result"));
此prodIds返回以下记录集:
[{id=[14766724], Date=[1999-01-01]}, {id=[49295837], code=[approved], Date=[2003-04-01]}]
[{id=[58761474621], code=[approved], Date=[2017-09-30]}, {id=[3368781], code=[Cancelled], Date=[2014-01-01]}, {id=[48843224], code=[Cancelled], Date=[2009-01-01]}]
我想要这样的输出:如果代码被“批准”-我的新哈希映射应具有如下值:
map.put("49295837", "2003-04-01")
map.put("58761474621", "2017-09-30")
Java代码
List<Map<String, Object>> prodIds = ((List<Map<String, Object>>) myIds.get("result"));
System.out.println("prodIds : " +prodIds );
// [{id=[14766724], Date=[1999-01-01]}, {id=[49295837], code=[approved], Date=[2003-04-01]}]
// [{id=[58761474621], code=[approved], Date=[2017-09-30]}, {id=[3368781], code=[Cancelled], Date=[2014-01-01]}, {id=[48843224], code=[Cancelled], Date=[2009-01-01]}]
Map<String, String> newMap = new HashMap<>();
for (Map<String, Object> map : prodIds) {
for (Map.Entry<String, Object> entry : map.entrySet()) {
String key = entry.getKey();
System.out.println("Key : " +key);
String value = (String) entry.getValue();
System.out.println(" Value : " +value);
}
}
如果将代码值“批准”到新的哈希图中,我将难以动态地放置键(id)和值(日期)。如果有人可以帮助我,这将真的很有帮助。
提前感谢您的帮助!
谢谢
问题来源:stackoverflow
尽我所能确定,这应该可行。但对于每一个Map<String,Object>我需要知道什么Object是(例如String,List<>等)。
我假设它们是列表。如果我错了,你会得到一个ClassCastException
public static Map<String, String>
getApproved(List<Map<String, Object>> prodIds) {
Map<String, String> newMap = new HashMap<>();
for (Map<String, Object> map : prodIds) {
if (map.containsKey("code") &&
((List<String>) map.get("code")).get(0)
.equals("approved")) {
newMap.put(((List<String>) map.get("id")).get(0),
(String) ((List<String>) map.get("Date"))
.get(0));
}
}
return newMap;
}
Map<String, String> newMap = getApproved(prodIds);
newMap.entrySet().forEach(System.out::println);
打印:
58761474621=2017-09-30
49295837=2003-04-01
答案来源:stackoverflow
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。