如何使用枚举过滤 LinkedList
How to filter a LinkedList with enums
我如何在枚举的帮助下过滤我的“StorageManager”在他名为“items”的 LinkedList 列表中的项目?
受此过滤器影响的项目需要复制到新的 LinkedList 中。我设法使用 buyNewItem() 将项目添加到存储管理器列表中,但需要帮助完成第二个任务。
如果我忘记添加一些重要信息,请告诉我。
编辑:唯一允许的导入是
导入java.util.Arrays;
导入 java.util.LinkedList;
编辑 2:我忘记了项目 Class 所以在这里
public 摘要 class 项目 {
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;
}
我如何在枚举的帮助下过滤我的“StorageManager”在他名为“items”的 LinkedList 列表中的项目? 受此过滤器影响的项目需要复制到新的 LinkedList 中。我设法使用 buyNewItem() 将项目添加到存储管理器列表中,但需要帮助完成第二个任务。
如果我忘记添加一些重要信息,请告诉我。
编辑:唯一允许的导入是
导入java.util.Arrays;
导入 java.util.LinkedList;
编辑 2:我忘记了项目 Class 所以在这里
public 摘要 class 项目 {
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;
}