我有三個hashmaps,其中2個有多個值(arrayLists)。如果散列表內的arraylist爲空?
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語句
你在你的IDE嘗試調試?生成的異常跟蹤會告訴你什麼是空的,可以做些什麼來避免這種情況。 – Nishant
在第一個if語句中,您正在調用空對象(z1values.isEmpty())上的方法。在調用之前,您需要確保z1values不爲null,以確定列表是否爲空。 – Zachary
「with ** the ** if語句」你在這段代碼中有兩個:對你的意思是特定的(例如「第一個if語句」);或者只是省略不相關的代碼。 –