目前我要做的是制作一个ArrayList<String>
,其中包含我数据库中的房间号码。所以目前每行数据都有一个房间号,例如1001,1002,1003。所以我需要做的是将这些值存储到ArrayList<String>
中,但问题是我不想在内部重复相同的房间号。那么当我运行循环来读取数据库中的所有数据时,如何在没有重复的情况下创建ArrayList<String>
。
目前这就是我所拥有的,我确信逻辑是错误的。
ResultSet rs1;
ArrayList<String> roomNumberList=new ArrayList<String>();
try {
PreparedStatement statement2 = so.getPreparedStatementWithKey("SELECT room FROM et_elderly ");
rs1 = statement2.executeQuery();
while(rs1.next()){
String num=Integer.toString(rs1.getInt("room"));
roomNumberList.add(num);
if(num!=Integer.toString(rs1.getInt("room"))){
roomNumberList.add(Integer.toString(rs1.getInt("room")));
num=Integer.toString(rs1.getInt("room"));
}
}
} catch (SQLException e2) {
// TODO Auto-generated catch block
e2.printStackTrace();
}
答案 0 :(得分:0)
解决此问题的两种方法:
更改您的SQL以选择不同的房间号码,如:
PreparedStatement statement2 = so.getPreparedStatementWithKey("SELECT DISTINCT room FROM et_elderly");
使用Set代替List,如:
Set<String> roomNumbers=new HashSet<String>();
注意除了比较字符串之外,不要使用!=
而是使用带有否定方法的equals
。