我有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();
}
答案 0 :(得分:5)
试试这个
for(int i=preferences.size();i<3;i++)
preferences.add(0);
答案 1 :(得分:0)
如果我理解你想要实现的目标,那么你必须创建包含5个元素的列表,每个元素的值为0。然后,您不必将值添加到列表中,而是必须将值设置为exact元素。然后你可以迭代5个元素。