如何使用枚举筛选LinkedList



如何过滤我的"StorageManager";在他的LinkedList中;项目";在enums的帮助下列出?受此筛选器影响的项目需要复制到新的LinkedList中。我设法用buyNewItem((将项目添加到存储管理器列表中,但在第二项任务中需要帮助。

如果我忘记添加一些重要信息,请告诉我。

编辑:唯一允许的导入是

导入java.util.Arrays
导入java.util.LinkedList;

编辑2:我忘记了项目类,所以这里是

公共抽象类项{

private double price;
private int ID;
private LinkedList<Allergen> allergenes;

public Item(double price,int ID) {
super();
this.price = price;
this.ID = ID;
this.allergenes = new LinkedList<Allergen>();

}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
public int getID() {
return ID;
}
public void setID(int iD) {
ID = iD;
}
public LinkedList<Allergen> getAllergenes() {
return allergenes;
}
public void setAllergenes(LinkedList<Allergen> allergenes) {
this.allergenes = allergenes;
}

}

提前感谢!:(

public class StorageManager extends Employee {
private LinkedList<Item>items;


public LinkedList<Item> getItems() {
return items;
}
public void setItems(LinkedList<Item> items) {
this.items = items;
}

public boolean buyNewItem(Item item) {
boolean IstDA = false;
for ( Item item1 : items) {
if(item1.equals(item)) {
this.items.add(item);
IstDA = true;
break;
}
}if(IstDA == false) {
System.out.println("Ist bereits im Warenkorb");
}
}




public static LinkedList<Allergen> filterStorage(filter Allergen){
if (this.items.contain(Allergen)){

我的枚举列表:

NUTS,PEANUTS,SOYBEANS,GLUTEN,FISH,MILK,EGGS;

看起来你不能使用流,所以一个简单的for循环就可以了。filterStorage的签名看起来有问题,所以我修改了它。

public LinkedList<Item> filterStorage(Allergen filter)
{
LinkedList<Item> newList = new LinkedList<>();
for (Item item1 : items) {
if (item1.getAllergenes().contains(filter)) {
newList.add(item1);
}
}
return newList;
}

相关内容

  • 没有找到相关文章

最新更新