我有一個arrayList private ArrayList Modules;在那裏我想要存儲模塊對象,然後我想檢查是否有一個對象具有相同的moduleNummer作爲插入的一個,這部分工作,當我只進入相同的moduleNummer它工作正常,當我輸入第二個(不同的)數將增加一個新的模塊,這兩個數字,但是當我想以一個星期添加到與2號的模塊將無法正常工作,我不uderstand爲什麼發生這種情況檢查Object是否包含ArrayList中的值不起作用
public void addModule(int moduleNummer, int weekNummer, int weekUren) throws ParseException {
if(Modules.size()==0) {
System.out.print("array size == 0");
Modules.add(new Module(moduleNummer));
Modules.get(0).addWeek(new ModuleWeek(weekNummer,weekUren));
return;
}
else{
for (int i = 0; i < Modules.size(); i++) {
System.out.print("entered loop \n");
System.out.print("arraySize:"+ Modules.size() + "\n");
System.out.print("selected array:"+Modules.get(i).getModuleNummer() + "\n");
System.out.print("inserted:"+moduleNummer + "\n");
int inArrayModuleNummer = Modules.get(i).getModuleNummer();
if (inArrayModuleNummer == moduleNummer) {
System.out.print("inserted Module number excists \n");
Modules.get(i).addWeek(new ModuleWeek(weekNummer, weekUren));
return;
}
else {
System.out.print("inserted module number does not excist and the arraySize != 0");
Module m = new Module(moduleNummer);
m.addWeek(new ModuleWeek(weekNummer, weekUren));
Modules.add(m);
return;
}
}
}
}
您能否更詳細地解釋此代碼應該執行的操作以及您嘗試自行調試的方法? –
也許使用'Map'而不是'List'? (每次遍歷列表可能會相當昂貴。) –
當循環不存在時,您的循環不會添加新值。當列表中的第一個值不相同時,它會添加一個新值。 – RealSkeptic