Java 如何在对象arraylist中使用迭代器
给你Java 如何在对象arraylist中使用迭代器,java,Java,给你 public class Planet { ArrayList<Person> person = new ArrayList<>(); Iterator<Person> itr = person.iterator(); public String getFemaleName() { for (int a = 0;a < person.size();a++) {
public class Planet
{
ArrayList<Person> person = new ArrayList<>();
Iterator<Person> itr = person.iterator();
public String getFemaleName()
{
for (int a = 0;a < person.size();a++)
{
if (person.getGender == "female")
{
return person.get(a).getName();
}
}
}
}
公共级行星
{
ArrayList person=新建ArrayList();
迭代器itr=person.Iterator();
公共字符串getFemaleName()
{
对于(int a=0;a
现在我有两个问题,第一个是我只想返回女性的名字,但似乎我必须返回一些东西,即使我的ArrayList中没有女性。
第二个是如何使用迭代器而不是for循环。高级for循环:
for (Person p : persons) // you should name your lists with plural
{
if (p.getGender().equals("female")) // use .equals() to compare strings, since == works in weird ways
{
return p.getName();
}
}
return null;
for(Person person: persons)
if(person.getGender.equals("female"))
return person.getName();
return null;
迭代器:
Iterator<Person> personsIter = persons.iterator();
while (personsIter.hasNext()) {
Person current = personIter.next();
if(person.getGender.equals("female"))
return person.getName();
}
return null
Iterator personsIter=persons.Iterator();
while(personsIter.hasNext()){
人员当前=personIter.next();
if(person.getGender.equals(“女性”))
返回person.getName();
}
返回空
returnnull
,就可以了,因为您的第一个return
语句根本不会执行for
循环替换为
while(itr.hasNext())
{
Person newPerson=itr.next();
if(newPerson.getGender().equals(“女性”)
返回newPerson.getName();
}
您是否需要显式地使用
迭代器
,或者如果您在内部使用迭代器
就足够了?当您找不到女性时,您需要返回什么内容的要求是什么?通常建议在LHS上使用文本进行相等比较,如女性.equals(p.getGender())
避免NullPointerException问题