为了账号安全,请及时绑定邮箱和手机立即绑定

如何在方法中使用 ArrayList 作为参数从类的 ArrayList 中删除元素?

如何在方法中使用 ArrayList 作为参数从类的 ArrayList 中删除元素?

扬帆大鱼 2022-11-02 10:17:32
我和我的朋友正在为我们的编程考试学习示例编程考试,并且在使用数组列表作为参数从同一类中的数组列表中删除多个项目的方法中遇到问题。我们尝试在网上搜索并使用我们的 BlueJ 教科书来寻找解决方案。我们的作业表上的说明说:“编写一个带有字符串数组 itemArray 参数的 removeItemFromOrder 方法,以从订单中删除多个食品。”import java.util.ArrayList;/** * Write a description of class Order here. * * @author (your name) * @version (a version number or a date) */public class Order{    // instance variables - replace the example below with your own    private ArrayList<OrderedItem> order;    /**     * Constructor for objects of class Order     */    public Order()    {        order = new ArrayList<>();    }    /**     * Returns the order collection to the user.     * @return the order collection.     */    public ArrayList getOrder()    {        return order;    }    /**     * Add an item to the order.     * @param OrderedItem the item to be added     */    public void addOrderItem(OrderedItem foodItem)    {        order.add(foodItem);    }    public void removeOrderItem(ArrayList<String> itemArray)    {        //**We don't know what to put here!**    }}
查看完整描述

4 回答

?
DIEA

TA贡献1820条经验 获得超2个赞

如果您需要删除多个项目,您可以将它们添加到临时列表并使用 removeAll


// creating ArrayList 

java.util.List<String> list = new ArrayList<>();  

list.add("apple");

list.add("banana");

list.add("mango");

list.add("barry");


java.util.List<String> needToRemove = new ArrayList<>();

needToRemove.add("apple");

needToRemove.add("banana");


// removeAll will remove multiple elements,

// We can pass any collection like Set, List or any other

list.removeAll(needToRemove);        


System.out.println("After Removed From List:");

list.forEach(System.out::println);


查看完整回答
反对 回复 2022-11-02
?
富国沪深

TA贡献1790条经验 获得超9个赞

正如我所见,您传递给removeOrderItem方法的数组列表是一个字符串列表,而您在类中的数组列表是一个OrderItem. 所以首先你必须找到这两个列表之间的共同点。


假设模型OrderItem有一个包含每个订单名称的字段 ( orderItem.getName())。itemArray方法中的是removeOrderItem一个列表,其中包含您要删除的一些订单的名称。


好的,在这种情况下,我们可以这样做:


public void removeOrderItem(ArrayList<String> itemArray) {

    List<OrderedItem> tempList = new ArrayList<>();


    for (OrderedItem food: this.order) {

        for (String foodName: itemArray) {

           if (food.getName().equals(foodName))

               tempList.add(food);

               break;

        }

    }


    this.order.removeAll(tempList);

}


查看完整回答
反对 回复 2022-11-02
?
白衣染霜花

TA贡献1796条经验 获得超10个赞

很好的朋友,.remove()只要有对象的key就可以试试这个方法,就是secunecial



查看完整回答
反对 回复 2022-11-02
?
墨色风雨

TA贡献1853条经验 获得超6个赞

Arraylist.clear(); 方法可用于清除数组列表 Arraylist.removeAll(); 方法删除数组列表的所有元素。这两种方法都会清除列表中的元素。clear() 方法具有更好的性能,因为它必须执行的行数更少。此链接https://howtodoinjava.com/java/collections/arraylist/empty-clear-arraylist/提供了这两种方法的源代码



查看完整回答
反对 回复 2022-11-02
  • 4 回答
  • 0 关注
  • 114 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信