0
我有兩種方法遍歷包含鍵(字符串)和值(Arraylist)的哈希映射,並將所有Arraylist中的值添加到單個Arraylist中。使用HashMap迭代器
方法一沒有工作,所以我創建了方法二,它解決了問題,但我不知道爲什麼方法一不工作。有人可以解釋爲什麼方法二的作品和方法一不行?
方法1種
public ArrayList<Person> getPeopleList()
{
Iterator<ArrayList<Person>> iter = people.values().iterator();
ArrayList<Person> allPersons = new ArrayList<>();
while (iter.hasNext())
{
for (int i = 0; i < iter.next().size(); i++)
{
allPersons.add(iter.next().get(i));
}
}
return allPersons;
}
方法2
public ArrayList<Person> getPeopleList()
{
Iterator<ArrayList<Person>> iter = people.values().iterator();
ArrayList<Person> allPersons = new ArrayList<>();
ArrayList<Person> persons;
while (iter.hasNext())
{
persons = iter.next();
for (Person p : persons)
{
allPersons.add(p);
}
}
return allPersons;
}
應該codereview.stackexchange.com –
@AmitK貼不完全是,OP詢問有關問題,對於已經工作的代碼不是潛在的改進。 – Pshemo
從來沒有聽說過它,爲什麼要張貼他們的? –