这个问题在这里已有答案:
我有三个哈希映射,其中两个有多个值(arrayLists)。
Map<String, String> advise = new HashMap<String, String>();
Map<String, ArrayList<String>> teach = new HashMap<String,ArrayList<String>>();
Map<String, ArrayList<String>> takesCo = new HashMap<String,ArrayList<String>>();
//ArrayList<String> courses = new ArrayList<String>;
我想根据第一个hashmap的键重复它们(建议)数组列表包含课程名称,我想在匹配时打印。
for (String x : advise.keySet()) {
String y = advise.get(x);
ArrayList<String> z1values = teach.get(y) ;
ArrayList<String> z2values = takesCo.get(x) ;
if (!z1values.isEmpty() && !z2values.isEmpty()){
for (String z1:z1values){
for (String z2:z2values){
if (z1.equals(z2)){
result=x+","+y+","+z1;
system.out.println(result);
}
}
}
}
}
我得到nullPointerException
符合if语句
只是改变你的状况
!z1values.isEmpty() && !z2values.isEmpty()
至
z1values != null && z2Values != null && !z1values.isEmpty() && !z2values.isEmpty()