如何解决迭代时从列表中删除多个元素
如果我需要遍历列表并尝试将元素分组在一起,那么最好的方法是什么?
例如,我们有以下对象要循环通过:
People
|---Jimmy
| -Country: Canada
|---Johnny
| -Country: Ireland
|---Vinny
| -Country: Italy
|---Tommy
| -Country: Ireland
|---Wendy
| -Country: Canada
例如,它以Jimmy开头,遍历列表以查找加拿大的任何人,只有Wendy与同一个国家/地区匹配,因此他们都被归为一组。迭代到下一个人时,我们不想为Wendy经历相同的过程(因为她已经被分组)。所以我们需要将她从原始列表中删除。
我读到迭代器最适合从活动的迭代列表中删除元素。但是,这只会删除当前元素。还有其他建议吗?我在想一个while循环,然后是一个for循环,该循环进行迭代以匹配。
例如:
while (!originalPersonList.isEmpty()) {
ArrayList<Person> newGroup = new ArrayList<Integer>();
List<Integer> indexToRemove = new ArrayList<Integer>();
newGroup.add(0);
indexToRemove.add(0);
for (int i=1; i < originalPersonList.size(); i++) {
if (originalPersonList.get(0).getCountry() == originalPersonList.get(i).getCountry()) {
indexToRemove.add(i);
newGroup.add(i);
}
}
originalPersonList.removeAll(indexToRemove);
}
道歉-我觉得我应该在一开始就强调一下。我只能使用Java 7。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。