我有一個2D-String-array,我正在逐行查找最小值。當我發現最小值時,我將找到的最小值的行添加到ArrayList中,以便在下一次迭代中跳過該行以查找數組的第二個最小值。我這樣做直到每個行號都是ArrayList的一部分。java:如果語句跳過以下語句
見到目前爲止我的代碼:
List assignedRow = new ArrayList();
for(int t = 0; t < excelMatrix.length-1; t++){
double lowest = Double.parseDouble(excelMatrix[0][1]);
int row = 0, column = 0;
for(int r = 0; r < excelMatrix.length-1; r++){
if(assignedRow.contains(r) == true) continue;
for(int c = 1; c < excelMatrix[r].length; c++){
double value = Double.parseDouble(excelMatrix[r][c]);
if(lowest > value) {
lowest = value;
row = r;
column = c;
}
}
}
assignedRow.add(row);
}
的代碼工作正常,到目前爲止,直到最小是0排此後,它一直執行下去的條件。
我現在正在尋找一些東西,允許我回到for循環,使用下一個更高的r,它不是ArrayList的一部分。
我希望我明確了我的問題。
只是一個側面說明(這不是你的代碼將無法正常工作問題):'if(assignedRow.contains(r)== true)'只是寫了'if(assignedRow.contains(r))'很長的路要走。 'contains' * already *返回一個'boolean',你不需要使用'== true'來獲得一個。我的意思是,你在哪裏停下來? if((assignedRow.contains(r)== true)== true)'? if(((assignedRow.contains(r)== true)== true)== true)'? **; - )** –
恐怕我不能完全理解你想要做什麼。 –
'if(assignedRow.contains(r)== true)'只會跳過那些已經有最小值的行。如果最小和第二最小值在同一行中,則會出現問題 – Sanjeev