我有一个Hash映射,其中包含String作为键,并且arraylist对象作为值
Map<String,List<ReportEPVO>> myListMap = new HashMap();
这里假设密钥是2013,它包含5个arraylist对象
如何从该hashmap中打印出这五个对象的值。
答案 0 :(得分:1)
您可以使用keySet
:
for (String s : myListMap.keySet()) {
System.out.println("Current key: " + s); //Optional for better understanding
for (ReportEPVO r : myListMap.get(s) {
System.out.println(r.toString());
}
}
上面的代码循环遍历List
中存储的所有Map
以及每个key=2013
中的所有元素。出于调试目的,您可以每次打印当前密钥。
如果您只想迭代使用for (ReportEPVO r : myListMap.get("2013") {
System.out.println(r.toString());
}
存储的列表,请使用:
ReportEPVO.java
回答评论中的问题。将以下内容添加到您的@Override
public String toString() {
return "FirstFieldName :" + <firstfield> + " SecondFieldName: " + <secondfield>.
}
:
int
在你的字段中是String,只需输入它的名字即可。如果它是原语(float
,boolean
,String.valueOf(fieldName);
...),则fieldName.toString()
。否则放STOCKITEM
。
答案 1 :(得分:-1)
使用Java 8
String search = "300";
data.keySet().stream().filter(k -> k.equalsIgnoreCase(search)).map(k -> data.get(k)).forEach(v -> System.out.println(v));
需要覆盖ReportEPVO类中的toString()方法。