java - Java ArrayList 不断重复值直到数组结束
问题描述
我想使用以下代码循环遍历 ArrayList。我有一个循环,所有参数都显示出来了。但它一直在重复,直到 sql 数据库结束。
ArrayList<Ews> controles = new ArrayList<>();
try {
Connection conn = DriverManager.getConnection(url, username, password);
String query = "SELECT * FROM " + database + ".controle";
java.sql.Statement st = conn.createStatement();
ResultSet rs = st.executeQuery(query);
while (rs.next()) {
int id = rs.getInt("id");
if (nr == id) {
Ews x = new Ews(rs.getString("datum"), rs.getInt("systole"), rs.getInt("diastole"), +
rs.getInt("pols"), rs.getDouble("temperatuur"));
controles.add(x);
Integer i = 1;
for (Ews controle : controles) {
System.out.println(i + ") " + controle.getDate() +
" - Bloeddruk: " + controle.getSyst() + "/" + controle.getDiast() +
" - Pols: " + controle.getPulse() + " - Temperatuur: " + controle.getTemp());
i++;
}
}
}
} catch (Exception e) {
System.err.println(e.getMessage());
}
}
我得到了这个结果。
1) - Bloeddruk: 120/60 - Pols: 60 - Temperatuur: 38.0
1) - Bloeddruk: 120/60 - Pols: 60 - Temperatuur: 38.0
2) - Bloeddruk: 130/60 - Pols: 32 - Temperatuur: 38.0
1) - Bloeddruk: 120/60 - Pols: 60 - Temperatuur: 38.0
2) - Bloeddruk: 130/60 - Pols: 32 - Temperatuur: 38.0
3) - Bloeddruk: 123/60 - Pols: 89 - Temperatuur: 38.0
1) - Bloeddruk: 120/60 - Pols: 60 - Temperatuur: 38.0
2) - Bloeddruk: 130/60 - Pols: 32 - Temperatuur: 38.0
3) - Bloeddruk: 123/60 - Pols: 89 - Temperatuur: 38.0
4) null - Bloeddruk: 120/60 - Pols: 60 - Temperatuur: 36.0
1) - Bloeddruk: 120/60 - Pols: 60 - Temperatuur: 38.0
2) - Bloeddruk: 130/60 - Pols: 32 - Temperatuur: 38.0
3) - Bloeddruk: 123/60 - Pols: 89 - Temperatuur: 38.0
4) null - Bloeddruk: 120/60 - Pols: 60 - Temperatuur: 36.0
5) 24-11-2020 13:12 - Bloeddruk: 120/60 - Pols: 61 - Temperatuur: 36.0
1) - Bloeddruk: 120/60 - Pols: 60 - Temperatuur: 38.0
2) - Bloeddruk: 130/60 - Pols: 32 - Temperatuur: 38.0
3) - Bloeddruk: 123/60 - Pols: 89 - Temperatuur: 38.0
4) null - Bloeddruk: 120/60 - Pols: 60 - Temperatuur: 36.0
5) 24-11-2020 13:12 - Bloeddruk: 120/60 - Pols: 61 - Temperatuur: 36.0
6) 24-11-2020 13:16 - Bloeddruk: 160/61 - Pols: 68 - Temperatuur: 36.0
// And so on...
但我想要这个结果
1) - Bloeddruk: 120/60 - Pols: 60 - Temperatuur: 38.0
2) - Bloeddruk: 130/60 - Pols: 32 - Temperatuur: 38.0
3) - Bloeddruk: 123/60 - Pols: 89 - Temperatuur: 38.0
4) null - Bloeddruk: 120/60 - Pols: 60 - Temperatuur: 36.0
5) 24-11-2020 13:12 - Bloeddruk: 120/60 - Pols: 61 - Temperatuur: 36.0
6) 24-11-2020 13:16 - Bloeddruk: 160/61 - Pols: 68 - Temperatuur: 36.0
// and so on...
我希望你们理解我的问题并知道如何解决它:)
解决方案
将您的 for 循环移到 while 循环之外。
谢谢@GriffeyDog
推荐阅读
- php - 如何以其他用户身份登录
- java - 有没有办法计算文本文件中的整数元素?
- c - 指针赋值将指针从 64 位截断为 32 位
- tsql - 我有产品表,其中有 PRODUCTID 列,它是 Int 我希望所有 ProductID 都在一行中,用逗号分隔
- jenkins - 无法通过詹金斯管道启动 pm2
- latex - 在引文中包含自定义文本
- windows - 为什么 Windows 有重复的性能计数器
- c++ - 作为模板对象本身的类成员没有默认构造函数
- mysql - 对每行的 JSON 数据执行 Regex 并使用 NiFi 推送到 MySQL 表中
- python - logging.config.fileConfig 不产生任何日志