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