Java 如何迭代列表之类的列表<;地图<;字符串,对象>&燃气轮机;
我有一个方法返回Java 如何迭代列表之类的列表<;地图<;字符串,对象>&燃气轮机;,java,foreach,Java,Foreach,我有一个方法返回列表 如何迭代类似于list的列表?这应该可以: List<Map<String, Object>> list = ... for (Map<String, Object> map : list) { ... } List=。。。 用于(地图:列表) { ... } 您还可以使用for循环中的或方法来访问列表中的元素。List List=getMyMap(); List<Map<String, Object>&
列表
如何迭代类似于list
的列表?这应该可以:
List<Map<String, Object>> list = ...
for (Map<String, Object> map : list)
{
...
}
List=。。。
用于(地图:列表)
{
...
}
您还可以使用for循环中的或方法来访问列表中的元素。List List=getMyMap();
List<Map<String, Object>> list = getMyMap();
for (Map<String, Object> map : list) {
for (Map.Entry<String, Object> entry : map.entrySet()) {
System.out.println(entry.getKey() + " - " + entry.getValue());
}
}
用于(地图:列表){
对于(Map.Entry:Map.entrySet()){
System.out.println(entry.getKey()+“-”+entry.getValue());
}
}
听起来你在找这样的东西:
List<Map<String, Object>> list; // this is what you have already
for (Map<String, Object> map : list) {
for (Map.Entry<String, Object> entry : map.entrySet()) {
String key = entry.getKey();
Object value = entry.getValue();
}
}
[isAllowed=true, isValid=true, cardNumber=672xxxxxxxxxxx]
列表列表;//这就是你已经拥有的
用于(地图:列表){
对于(Map.Entry:Map.entrySet()){
String key=entry.getKey();
对象值=entry.getValue();
}
}
使用java 1.8(8),您可以像这样重新编写它:
list.forEach(item ->
item.forEach((k, v) -> System.out.println(k + ": " + (String)v)
);
Map Map=newhashmap();
地图放置(“第一”、“1”);
地图放置(“第二”、“2”);
地图放置(“第三”、“3”);
地图放置(“四”、“四”);
//这就是逻辑
对于(Map.Entry:Map.entrySet()){
System.out.println(entry.getKey()+“-”+entry.getValue());
}
我向您发布一个简单的列表示例
publicstaticvoidmain(字符串[]args){
Map map1=新的HashMap();
map1.put(“map1键1”,(对象)“map1值1”);
map1.put(“map1键2”,(对象)“map1值2”);
Map map2=新的HashMap();
map2.put(“map2键1”,(对象)“map2值1”);
map2.put(“map2键2”,(对象)“map2值2”);
列表=新的ArrayList();
列表。添加(map1);
列表。添加(map2);
list.stream().forEach(mapsData->{
mapsData.entrySet().forEach(mapData->{
System.out.println(“Key:+mapData.getKey()+”值:+mapData.getValue());
});
});
}
这是一种简单的方法,可以迭代地图列表作为我的起点。我的列表中有一个带有3个值的Map对象
List<Map<String, Object>>
Eclipse IDE控制台中的输出如下所示:
List<Map<String, Object>> list; // this is what you have already
for (Map<String, Object> map : list) {
for (Map.Entry<String, Object> entry : map.entrySet()) {
String key = entry.getKey();
Object value = entry.getValue();
}
}
[isAllowed=true, isValid=true, cardNumber=672xxxxxxxxxxx]
用于模糊处理的x
另一种方式:
answerListOfMaps.stream().flatMap(map -> map.entrySet().stream())
.forEach( entry -> System.out.println(entry.getKey() + ":" + entry.getValue()) );
控制台:
isAllowed:true
isValid:true
cardNumber:672xxxxxxxxxxx
如果可以选择的话,尽量避免像这样过于复杂的嵌套集合数据结构,而是创建一个新类。如果另一个程序员遇到了你的列表,他可能需要深入研究你的代码,以找出它确切地包含了什么。通过一个类,你可以通过命名和文档说明你的意图。您分配了两次map
,列表中的值应该是map
。问题是关于遍历映射列表,而不仅仅是映射。我会投反对票,但你这样做会失去一分。谢谢兄弟。好建议
isAllowed:true
isValid:true
cardNumber:672xxxxxxxxxxx