Java 如何编写removeDelivery方法来删除ArrayList的元素

Java 如何编写removeDelivery方法来删除ArrayList的元素,java,Java,亚马逊有一个送货服务,每个送货人都由一个DeliveryPersonal对象表示。每个送货员负责一份特定的送货清单。每个传递都表示为一个传递对象。DeliveryPersonal对象应该能够在新的传递请求传入时添加传递对象,并且还应该能够在完成传递对象时删除它们。我们定义了以下交付类别: class Delivery { // class variables private static int count; // total number of deliveries (sta

亚马逊有一个送货服务,每个送货人都由一个DeliveryPersonal对象表示。每个送货员负责一份特定的送货清单。每个传递都表示为一个传递对象。DeliveryPersonal对象应该能够在新的传递请求传入时添加传递对象,并且还应该能够在完成传递对象时删除它们。我们定义了以下交付类别:

class Delivery {
    // class variables
    private static int count;  // total number of deliveries (static)
    private final int id;      // ID of this delivery
    private final String name; // name of this delivery

    // constructor
    public Delivery(String n) {
        this.name = n;
        this.id = Delivery.count++;
    }

    // getter methods
    public int getId() {
        return this.id;
    }
    public String getName() {
        return this.name;
    }

    // equals method
    public boolean equals(Object o) {
        return o instanceof Delivery && this.id == ((Delivery)o).id;
    }
}
任务:创建名为DeliveryPersonal的类,该类具有以下属性:

Q1:它应该有一个名为deliveries的ArrayList类型的实例变量,该变量将包含需要由该DeliveryPersonal对象完成的交付

问题2:它必须有一个无参数构造函数,该构造函数应将交付实例变量初始化为空ArrayList

问题3:它必须有一个名为getNumDeliveries的无参数实例方法,该方法返回此DeliveryPersonal对象需要完成的交付数量(即交付实例变量中的元素数量)

问题4:它必须有一个名为addDelivery的实例方法,该方法只有一个Delivery类型的参数,并且应该将method参数添加到deliveries实例变量中。它不应该归还任何东西

问题5:它必须有一个名为addDeliveries的实例方法,该方法只有一个Iterable类型的参数,并且它应该将参数中包含的所有传递对象添加到deliveries实例变量中。它不应该归还任何东西

Q6:它必须有一个名为removeDelivery的实例方法,该方法有一个int类型的参数,并且它应该从deliveries实例变量(如果存在这样的对象)中删除以参数作为其id的Delivery对象。如果它成功删除了一个传递,它应该返回被删除的对象;否则,它应该返回null 对于整个挑战,您可以假设您永远不会遇到重复的ID或重复的交付对象

提示:您可以使用for-each循环来迭代实现Iterable接口的任何类的元素

我已经找到了Q1-Q5,但我想不出完成Q6的解决方案,你能帮我完成这部分吗。多谢各位

我的代码如下:

class DeliveryPersonnel {

    ArrayList<Delivery> deliveries;


    public DeliveryPersonnel() {

        this.deliveries = new ArrayList<Delivery>();
    }

    public int getNumDeliveries() {
        return this.deliveries.size();
    }

    public void addDelivery(Delivery d) {
        this.deliveries.add(d);
    }

    public void addDeliveries(Iterable<Delivery> it) {

        for (Delivery delivery : it) {
            this.deliveries.add(delivery);
        }

    }

    public Delivery removeDelivery(int id){

        if(id < getNumDeliveries()+1) {
            System.out.print(this.deliveries.remove(id-1).getName());
            return this.deliveries.remove(id-1);
        }else {
            return null;
        }

    }

}
类交付人员{
ArrayList交付;
公共递送人员(){
this.deliveries=new ArrayList();
}
public int getNumDeliveries(){
返回此.deliveries.size();
}
公共交付(交付d){
本条。交付。添加(d);
}
公共交付(Iterable it){
对于(交付:it){
此.deliveries.add(delivery);
}
}
公共交付移除交付(int id){
if(id
发布代码

public Delivery removeDelivery(int id){

        Delivery d = null;

         for (Delivery delivery : deliveries) {
            if(delivery.getId()==id) {
                d = delivery;
                deliveries.remove(delivery);
                return delivery;
            }
        }
         return d;
}