当前位置: 首页 > 知识库问答 >
问题:

如何使用枚举筛选LinkedList

花飞尘
2023-03-14

如何在枚举的帮助下筛选我的“StorageManager”在其名为“items”的LinkedList中的项目?受此筛选器影响的项目需要复制到新的LinkedList中。我用buyNewItem()将项目添加到存储管理器列表中,但第二项任务需要帮助。

如果我忘记添加一些重要信息,请让我知道。

编辑:仅允许重新导入的是

导入java.util.数组;
导入java.util.LinkedList;

编辑2:我忘记了Item类,所以它在这里

公共抽象类项{

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;

共有1个答案

罗鸿福
2023-03-14

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

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;
}

 类似资料:
  • 我有一个审计日志实体,在这个实体中,我有一个映射到另一个拥有字段审计类型的实体。我想使用JPA存储库实现后端过滤。我想通过REST GET方法返回包含传递给query param的AuditActionType的所有AuditLog<代码>审核操作类型是:、、、、 例子: http://localhost:8086/audit/action?action=lo 应返回其审核操作包含“lo”的所有审

  • 假设我有一个班级: 我有另一个类,其中用户登录,并且根据他是管理员还是普通用户,用户可以访问有限的枚举列表。我知道我可以从类中获取所有枚举的完整列表,但是在枚举类不知道用户信息的情况下,通过某些标准过滤这些枚举的优雅方法是什么? 编辑:以下是它今天的样子: 我正在返回1000个事件的完整列表,而管理员应该只看到有限的数量。

  • 问题内容: 有没有办法使用NHibernate将枚举持久化到数据库?那有一张代码表和枚举中每个值的名称。 我想保留没有实体的枚举,但仍然具有从所有其他引用实体到枚举的表的外键(枚举的int表示形式)。 问题答案: 你们为什么把这个复杂化呢?真的很简单。 映射如下所示: 该模型属性如下所示: 枚举看起来像这样: NHibernate将自动解决所有问题。为什么键入比您需要的更多???

  • 问题内容: 我有一个电影租借系统的现有数据库。每部电影都有一个评级属性。在SQL中,他们使用约束来限制此属性的允许值。 我认为使用Java枚举将约束映射到对象世界会很好。但是由于“ PG-13”和“ NC-17”中的特殊字符,不可能简单地获取允许的值。因此,我实现了以下枚举: 使用toString()方法,方向enum-> String可以正常工作,但是String-> enum不能正常工作。我得

  • 问题内容: 例如,我该怎么做: 结果示例: 问题答案: 迅捷4.2+ 从Swift 4.2(使用Xcode 10)开始,只需添加协议一致性即可从中受益。要添加此协议一致性,您只需要在某处写: 如果枚举是您自己的,则可以直接在声明中指定一致性: 然后,以下代码将打印所有可能的值: 与早期Swift版本(3.x和4.x)的兼容性 如果您需要支持Swift 3.x或4.0,则可以通过添加以下代码来模仿S

  • 问题内容: 我想将此示例C#代码转换为Java代码: 因为我想将此常量类更改为枚举 问题答案: 简而言之-您可以为枚举定义任意数量的参数,只要您提供构造函数参数(并将值设置为相应的字段) 正如Scott所指出的那样- 官方的枚举文档为您提供了答案。始终从语言功能和结构的官方文档开始。 更新:对于字符串,唯一的区别是您的构造函数参数为,并且您声明了带有