【问题标题】:pad the list with zeroes if it has less than 3 entries如果列表少于 3 个条目,则用零填充列表
【发布时间】:2020-06-12 11:44:37
【问题描述】:

我有 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();
  }

【问题讨论】:

    标签: java sql checkbox


    【解决方案1】:

    试试这个

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

    【讨论】:

    • 这就足够了:for(int i=preferences.size();i
    【解决方案2】:

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

    【讨论】:

    • 好的。但随后他将需要跟踪实际插入了多少值。 .size() 无济于事。
    • 这是为什么呢?我是这样理解的:首先他有 [0,0,0,0,0] 然后他设置了一些值并有类似 [0,2,5,0,1] 的东西(只设置了三个)所以最后他可以迭代 5 个元素并将每个元素设置为他的过程中的参数。也许我误解了他的问题。
    • 如果用户只选择 2 个复选框,它会像 [1,3,0,0,0]
    • 不,只是他使用 .size() 知道选择了超过 3 个选项。这只是为了方便只添加选定的值。
    猜你喜欢
    • 2022-08-09
    • 1970-01-01
    • 2016-08-17
    • 2017-06-17
    • 2015-05-17
    • 2020-08-11
    • 2013-05-01
    • 2021-03-11
    • 2021-01-04
    相关资源
    最近更新 更多