从数组删除但保持顺序?

时间:2013-03-03 17:36:42

标签: java

好的,所以我试图从我的数组中删除一个对象,每个对象都有一个用户id,所以数组中的0索引将保存一个id为1的对象。例如,当我删除id为2的对象时,我想删除数组中的1索引并重做模型并显示它。所以我希望模型显示1:blah然后3:Blah等等,遗漏掉已删除的那些

 private void DeleteButtonActionPerformed(java.awt.event.ActionEvent evt) {

// arrays index not working when deleted
int reply = JOptionPane.showConfirmDialog(null, "Are you sure?","Delete Patient: " +     
NameTextField.getText(), JOptionPane.YES_NO_OPTION);
    if (reply == JOptionPane.YES_OPTION) {

        int Num = Integer.parseInt(IDTextField.getText());
        int Num1 = Num--;


        for(Patient s: PatientList)
        {

            if(Num == s.getAccountNumber())
            {
                PatientList.remove(Num1);
                break;

            }
        }

        DefaultListModel PatientListModel = new DefaultListModel(); 

    for(Patient s: PatientList)
    {

   PatientListModel.addElement(s.getAccountNumber() + "-" + s.getName());  
 }
   PatientJList.setModel(PatientListModel); 

   //delete procedures for that id



      JOptionPane.showMessageDialog(null, "Patient: " + NameTextField.getText() + "     

 Deleted!");
      NameTextField.setText("");
    AgeTextField.setText("");
    AddressTextField.setText("");
    SexGroup.clearSelection();
    PhoneTextField.setText("");
    IDTextField.setText("");
     PatientJList.clearSelection();


    }
    else {


    }
}

2 个答案:

答案 0 :(得分:2)

我相信你不应该使用数组索引作为对象id,而应该在对象本身维护这个属性。类似的东西:

public class Patient {

    private int id;

    // getter and setter for id

    // rest of the class

}

答案 1 :(得分:0)

您正在谈论的Object,在其中再保留一个名为index的属性。将此对象添加到数组时,将Object.index设置为数组索引。

现在对数组做任何你想做的事。但在显示阵列时。这样做

Object.index Object