我需要帮助为每个循环编写一个搜索名为peoplelist的数组列表的人。循环需要在数组中搜索String postcode和String name的值。然后,如果找到它,则需要返回它们的ID,如果不是,则返回null。任何形式的帮助都会很棒!
答案 0 :(得分:3)
如果类People
被编写为Java bean(即使用标准的getter方法),那么这样的事情就可以完成:
for (People person : peopleList) {
if (person.getName().equals(name) && person.getPostcode().equals(postCode))
return person.getId();
}
return null;
如果某个人的姓名或邮政编码可以是null
,您可能需要翻转equals
调用以避免空指针异常(例如name.equals(person.getName())
而不是person.getName().equals(name)
)。
Btw Person
会是一个更好的名字。
答案 1 :(得分:2)
需要对你的课程做出很多假设,但这样的事情就足够了:
for (People person : peoplelist) {
if (person.getPostCode().equals(postcode) && person.getName().equals(name)) {
return person.getId();
}
}
// deal with not being found here - throw exception perhaps?
答案 2 :(得分:1)
对于“两个元素”,你的意思是“某个类的两个属性”吗?如果是这样,沿着这些方向的事情会做:
String id = null;
for(People p : peoplelist) {
if(somePostcode.equals(p.postcode) && someName.equals(p.name)) {
id = p.id;
break; // no need to continue iterating, since result has been found
}
}
// result “id” is still null if the person was not found
答案 3 :(得分:0)
People foundPerson;
for (People eachPeople : peoplelist )
{
if (Integer.valueOf(eachPeople.getID()) == 10054
&& "Jimmy".equals(eachPeople.getName()))
{
foundPerson= eachPeople;
break;
}
}
答案 4 :(得分:0)
//In case multiple persons match :)
List<String> result = new LinkedList<String>();
for (People person : peopleList) {
if (person.getName().equals(name) && person.getPostcode().equals(postCode))
result.add(person.getId());
}
if(result.isEmpty()){
return null;
}else{
return result;
}
答案 5 :(得分:0)
假设您有一个Person
bean,那么如果您要检索Person
和postcode
匹配某些值的name
的所有实例,您可以执行类似这样的操作:
public List<Person> searchFirst(List<Person> persons, String postcode, String name) {
List<Person> matchingPersons = new ArrayList<Person>();
for (Person person : persons) {
if (person.getPostcode().equals(postcode) && person.getName().equals(name))
matchingPersons.add(person);
}
return matchingPersons;
}
下次,您可能希望向我们展示您的代码,以便我们帮助您了解您所做的错误:)