如果列表少于3个,则用零填充列表

时间:2015-08-06 09:01:34

标签: java sql checkbox

我有5个复选框,我将选择限制为仅3。每个所选复选框的列表值将存储到数据库中,如果列表少于3个,则用零填充列表。如何用零填充列表?

List < Integer > preferences = new ArrayList < Integer > ();
if (chckbxLei.isSelected()) {
    preferences.add(Integer.valueOf(chckbxLei.getName()));

}

if (chckbxAdv.isSelected()) {
    preferences.add(Integer.valueOf(chckbxAdv.getName()));
}
if (chckbxHis.isSelected()) {
    preferences.add(Integer.valueOf(chckbxHis.getName()));
}
if (chckbxOut.isSelected()) {
    preferences.add(Integer.valueOf(chckbxOut.getName()));
}
if (chckbxFAK.isSelected()) {
    preferences.add(Integer.valueOf(chckbxFAK.getName()));
}

if (preferences.size() > 3) {
    JOptionPane.showMessageDialog(frame,
        "Please Select Only 3! ");
    return;

}
Place place = new Place();
try {
    place.addPre(preferences);
} catch (Exception e1) {
    // TODO Auto-generated catch block
    e1.printStackTrace();
}

Place.java

public void addPre(List < Integer > preferences) throws Exception {
DatabaseConnection db = new DatabaseConnection();
Connection connect = db.getConnection();
String sql = "Insert into preferences(Pre1,Pre2,Pre3,Pre4,Pre5)VALUES (?,?,?,?,?) ";
PreparedStatement ps = connect.prepareStatement(sql);
for (int i = 0; i < 5; i++) {

    ps.setInt(i + 1, preferences.get(i));

}
ps.executeUpdate();
connect.close();
ps.close();

}

2 个答案:

答案 0 :(得分:5)

试试这个

   for(int i=preferences.size();i<3;i++)
       preferences.add(0);

答案 1 :(得分:0)

如果我理解你想要实现的目标,那么你必须创建包含5个元素的列表,每个元素的值为0。然后,您不必将值添加到列表中,而是必须将值设置为exact元素。然后你可以迭代5个元素。