【问题标题】:How to remove an element from array of objects?如何从对象数组中删除元素?
【发布时间】:2020-03-20 05:14:48
【问题描述】:
public class Patient extends Person {
    private String Diagnosis;
    private Appointment[] appointment = new Appointment[2];
    private int numberofAppointment;
    public static int numberOfPatient;

    public void DellappointmentAT(int index) {
        appointment[index].setAvailable(true);
        numberofAppointment--;
    }
}

我创建的类有一个对象数组作为数据字段,我有这个方法应该从这个数组中删除一个元素,我想在不改变数组大小的情况下删除元素。

【问题讨论】:

  • 有什么问题?
  • 普通数组在 Java 中具有固定大小,因此您使用了错误的数据类型来满足此处的要求。为此任务使用ArrayList

标签: java arrays object


【解决方案1】:

删除元素会影响数组大小。

如果您确实需要初始数组保持不变,有两种常用方法:

  1. 创建另一个数组,这样您的初始数组就不会被修改
  2. 软删除 - 在对象内创建删除标志。这样,您可以区分已删除的数据和保持不变的数组大小

【讨论】:

    【解决方案2】:

    这个怎么样:

    public void DellappointmentAT(int index) {
        appointment[index].setAvailable(true);
        numberofAppointment--;
        for (int i = index; i < numberofAppointment; ++i) {
            appointment[i] = appointment[i+1];
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2020-01-31
      • 1970-01-01
      • 2017-03-21
      • 2011-03-14
      • 2018-02-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-12
      相关资源
      最近更新 更多