藉口: 開始我想告訴你,我不是一個專家級的java程序員,也不知道arrayLists和迭代的所有細節。到目前爲止,我已經走過了一段很長的路,但我不知道我的問題,因爲我對Java中的Lists很少有經驗。java - arraylist迭代,不打印出第一行
問題: 我試圖把我的SQL查詢結果(結果集(我想這也是一個數組列表,所以IM可能使用它不需要雙數組列表))到ArrayList中,之後,我嘗試將每行打印到控制檯中,但遇到第一行未打印的問題。
解決方案: 我很好,只要下面有兩種情況:1.將導致正常陣列(所以沒有ArrayList中),這使得它更容易爲我,因爲我知道如何處理數組。 2.你們能告訴我爲什麼第一行不會被打印
我的數據庫: 我有兩個colums,第一個是主鍵(ID),第二個是一個命令(字符串( VARCHAR)我想,一旦我得到它來執行
我的代碼:
public List<String> getCommands(){
String sql = "SELECT * FROM query";
try {
PreparedStatement stmt = CONNECTION.prepareStatement(sql);
ResultSet results = stmt.executeQuery();
if (results.next()) {
List<String> row = new ArrayList<String>();
while(results.next()) {
row.add(results.getString(2));
}
return row;
} else {
return null;
}
} catch (SQLException e) {
e.printStackTrace();
}
return null;
}
List<String> results = SQL.getCommands();
if(results != null){
getLogger().info("Found at least 1 command");
for (Iterator<String> i = results.iterator(); i.hasNext();) {
String row = i.next();
getLogger().info("command: " + row);
}
}else{
getLogger().info("Can't find commands");
}
我的輸出:它打印一切exept在數據庫中的第一行
您正在調用'results.next()'兩次,因此它跳過第一行。你應該刪除'if'子句。 – tima
這不是'arraylist迭代'。 – saka1029