Java 通过参数在列表中查找对象

Java 通过参数在列表中查找对象,java,object,foreach,parameters,Java,Object,Foreach,Parameters,我在练习使用ArrayList,所以我得到了这个练习,我需要创建一个药物farmacy,farmacy有一个药物列表,这些药物都包含两种药物,每种药物都有一个布尔过敏原 我需要做的是在Farmacy类中创建一个方法,该方法需要2个参数(一个有过敏反应的人和一种药物)。该方法必须遍历药物列表,并检查该药物中是否有任何过敏原与人的过敏特征相匹配 这就是我面临的问题:我需要匹配通过参数发送的药物和listMedicine中的药物,这就是我所需要的(可能是aMedicine.getName().equa

我在练习使用ArrayList,所以我得到了这个练习,我需要创建一个药物farmacy,farmacy有一个药物列表,这些药物都包含两种药物,每种药物都有一个布尔过敏原

我需要做的是在Farmacy类中创建一个方法,该方法需要2个参数(一个有过敏反应的人和一种药物)。该方法必须遍历药物列表,并检查该药物中是否有任何过敏原与人的过敏特征相匹配

这就是我面临的问题:我需要匹配通过参数发送的药物和listMedicine中的药物,这就是我所需要的(可能是aMedicine.getName().equals(oneMedicine.getName())) 但我试过了,但没用。 然后,我可以对该方法的下一部分应用类似的过程

public void checkAllergies(Person onePerson, Medicine aMedicine){

    for(Medicine oneMedicine : listMedicine){



    }
}
泰晤士河时间:)


顺便说一句,我使用IntelliJ

这是您通常应该如何筛选
集合的方法

List<Person> persons = new ArrayList<>();

/* Java 8+ using streams and predicate (lambda expression)*/
List<Person> personsOlderThan10 = persons.stream().filter(p -> p.age > 10).collect(Collectors.toList());

/* Java 7- using Predicates*/
List<Person> personNamedJohn = new ArrayList<>(persons);
personNamedJohn.removeIf(new Predicate<Person>() {

    @Override
    public boolean test(final Person person) {
        if (person.getFirstName().toLowerCase().equals("john")) {
            return false;
        }
        return true;
    }
});
List persons=new ArrayList();
/*Java 8+使用流和谓词(lambda表达式)*/
List personsOlderThan10=persons.stream().filter(p->p.age>10.collect(Collectors.toList());
/*Java7-使用谓词*/
List personNamedJohn=新阵列列表(人);
personNamedJohn.removeIf(新谓词(){
@凌驾
公共布尔测试(最终人员){
if(person.getFirstName().toLowerCase().equals(“john”)){
返回false;
}
返回true;
}
});
要确定您的筛选器是否有任何结果,只需检查
Collection.isEmpty()


只需组合一个表示药物/精料过滤器的谓词,然后检查是否有结果。

在循环中显示代码(您尝试了什么)。您提供的数据不足。如何找出人的过敏特征。要解决这个问题,需要Person和Medicine类的对象模型,或者任何其他的对象模型(如果适用),您使用的是什么java?随着Java8流的引入,它提供了一个良好且简单的过滤功能。同样使用java,您希望通过这个循环实现什么?如果
患者对
药物过敏
,实际会发生什么情况?你能把
存放在什么地方吗?只需打印一行,比如,
person.getName()+“对”+medicine.getName()过敏”
?这里有太多的未知数了。@FrancisBartkowiak刚刚编辑了这个问题,但基本上我只是想说明这个人是否过敏。