猿问

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

我和我的朋友正在为我们的编程考试学习示例编程考试,并且在使用数组列表作为参数从同一类中的数组列表中删除多个项目的方法中遇到问题。


我们尝试在网上搜索并使用我们的 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!**

    }

}


扬帆大鱼
浏览 115回答 4
4回答

DIEA

如果您需要删除多个项目,您可以将它们添加到临时列表并使用 removeAll// creating ArrayList&nbsp;java.util.List<String> list = new ArrayList<>();&nbsp;&nbsp;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 otherlist.removeAll(needToRemove);&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;System.out.println("After Removed From List:");list.forEach(System.out::println);

富国沪深

正如我所见,您传递给removeOrderItem方法的数组列表是一个字符串列表,而您在类中的数组列表是一个OrderItem. 所以首先你必须找到这两个列表之间的共同点。假设模型OrderItem有一个包含每个订单名称的字段 ( orderItem.getName())。itemArray方法中的是removeOrderItem一个列表,其中包含您要删除的一些订单的名称。好的,在这种情况下,我们可以这样做:public void removeOrderItem(ArrayList<String> itemArray) {&nbsp; &nbsp; List<OrderedItem> tempList = new ArrayList<>();&nbsp; &nbsp; for (OrderedItem food: this.order) {&nbsp; &nbsp; &nbsp; &nbsp; for (String foodName: itemArray) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (food.getName().equals(foodName))&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tempList.add(food);&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; }&nbsp; &nbsp; this.order.removeAll(tempList);}

白衣染霜花

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

墨色风雨

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

相关分类

Java
我要回答