Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何将ArrayList用作方法中的参数,以从类';什么是ArrayList?_Java_Arrays_Arraylist_Collections - Fatal编程技术网

Java 如何将ArrayList用作方法中的参数,以从类';什么是ArrayList?

Java 如何将ArrayList用作方法中的参数,以从类';什么是ArrayList?,java,arrays,arraylist,collections,Java,Arrays,Arraylist,Collections,我的朋友和我正在为我们的编程考试学习做示例编程考试,在使用数组列表作为参数的方法删除同一类中数组列表中的多个项时遇到了问题 我们已经尝试搜索网络,并使用我们的BlueJ教科书来寻找解决方案 作业单上的说明是:“使用字符串数组itemArray参数编写removeItemFromOrder方法,以从订单中删除多个食品项目。” import java.util.ArrayList; /** *在这里写一篇关于课程顺序的描述。 * *@author(你的名字) *@version(版本号或日期) */

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

我们已经尝试搜索网络,并使用我们的BlueJ教科书来寻找解决方案

作业单上的说明是:“使用字符串数组itemArray参数编写removeItemFromOrder方法,以从订单中删除多个食品项目。”

import java.util.ArrayList;
/**
*在这里写一篇关于课程顺序的描述。
*
*@author(你的名字)
*@version(版本号或日期)
*/
公共阶级秩序
{
//实例变量-将下面的示例替换为您自己的
私人ArrayList秩序;
/**
*类顺序对象的构造函数
*/
公共秩序()
{
订单=新的ArrayList();
}
/**
*将订单集合返回给用户。
*@返回订单集合。
*/
公共数组列表getOrder()
{
退货单;
}
/**
*将项目添加到订单中。
*@param OrderedItem要添加的项目
*/
公共无效addOrderItem(OrderedItem foodItem)
{
添加(foodItem);
}
public void removeOrderItem(ArrayList itemArray)
{
//**我们不知道该在这里放什么**
}
}
Arraylist.clear();方法可用于清除数组列表 Arraylist.removeAll();方法移除数组列表的所有元素。 这两种方法都清除列表中的元素。clear()方法执行的行数较少,因此具有更好的性能。
此链接提供了这两种方法的源代码。非常好的朋友,您可以尝试使用该方法。remove()只要您有对象的密钥,即secunecial

如果您需要删除多个项,您可以将它们添加到临时列表中,也可以使用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);
//创建ArrayList
java.util.List List=new ArrayList();
添加(“苹果”);
添加(“香蕉”);
添加(“芒果”);
列表。添加(“巴里”);
java.util.List needToRemove=new ArrayList();
需要删除。添加(“苹果”);
需要移动。添加(“香蕉”);
//removeAll将删除多个元素,
//我们可以传递任何集合,如集合、列表或任何其他集合
列表。移除所有(需要移除);
System.out.println(“从列表中删除后:”);
list.forEach(System.out::println);

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

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

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

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);
}
public void removeOrderItem(ArrayList itemArray){
List templast=new ArrayList();
对于(OrderedItem食品:this.order){
for(字符串foodName:itemArray){
if(food.getName().equals(foodName))
圣殿骑士。添加(食物);
打破
}
}
这个.order.removeAll(圣殿骑士);
}

添加数组列表作为参数从数组列表中删除多个项目我们正在尝试在从主集合中删除项目的方法中使用数组列表作为参数从主数组列表中删除项目。请检查此项,我们将如何执行此操作?在参数中创建的数组列表是否用作临时列表?
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);
}