[英]Android: removing elements from list with iterator
private void removeLettersFromMakeWords(List<String> a, List<String> b){
Iterator<String> i = a.iterator();
for(String s:b)
while (i.hasNext()) {
Object o = i.next();
if(o.toString().equals(s)){
i.remove();
break;
}
}
}
我使用迭代器遍历列表,如果有匹配项,则从列表中删除一个元素。 例如:如果a
= [a, y, f, z, b]
和b
= [a, f]
->输出将是a
= [ y, z, b
]
问题是如果a
= [a, y, f, z, b]
和b
= [f, a]
->输出将是a
= [ a, y, z, b
]并且迭代器不会删除[ a
]开头的值。 有没有一种方法可以重置迭代器,以便每次break
迭代器都从头开始? 还是有解决此问题的更好方法?
您不能“重置”迭代器,但是只要您想从头开始迭代,就可以得到一个新的迭代器。 像这样:
if (o.toString().equals(s)) {
i.remove();
i = a.iterator();
break;
}
编辑 :正如@ njzk2在他的评论中所说,有更好的(内置)方法可以做到这一点。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.