如何过滤我的"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;
}