[英]Converting resultSet to arrayList and printing it out
我試圖將具有2列的結果集轉換為數組的arraList。 要檢查我的代碼,然后將其打印出來。 為此,我做了一張折衷為2列×5行的小桌子。
問題是我的測試打印輸出了我原始表的5倍。 所以現在我很困惑。 我轉換resultSet的方式是錯誤的還是打印不正確? 有人可以幫忙嗎?
碼:
public static void partner() {
ArrayList <int[]> result = new ArrayList<int[]>();
String select = "SELECT ID, age FROM individuen WHERE age BETWEEN 20 AND 40 " +
"AND Familienstand IS 2 ORDER BY RANDOM() LIMIT 5";
DBController dbc = DBController.getInstance();
dbc.initDBConnection();
try {
Statement stmt = DBController.connection.createStatement();
ResultSet rs = stmt.executeQuery(select);
int columnCount = rs.getMetaData().getColumnCount();
while(rs.next()){
int[] row = new int[columnCount];
for (int i = 0; i < columnCount ; i++){
row[i] = rs.getInt(i + 1);
}
result.add(row);
}
Iterator<int[]> it = result.iterator();
while (it.hasNext()) {
for (int[] arr : result) {
System.out.println(Arrays.toString(arr));
}
it.next();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
for
或while
循環僅保留一個循環。
for (int[] arr : result) {
System.out.println(Arrays.toString(arr));
}
您在ArrayList
有一個嵌套的迭代,這意味着您對ArrayList
進行了多次迭代(次數是ArrayList
的size()
)。
您只需要一個for循環:
for (int[] arr : result) {
System.out.println(Arrays.toString(arr));
}
或一個while循環:
Iterator<int[]> it = result.iterator();
while (it.hasNext()) {
System.out.println(Arrays.toString(it.next()));
}
不是都。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.