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]
- &gt;输出将为a
= [a, y, z, b
]
并且迭代器不会在开头删除[a
]值。有没有办法重置迭代器,以便每次break
迭代器从头开始?或者有更好的方法来解决这个问题吗?
答案 0 :(得分:2)
您无法“重置”迭代器,但只要您想再次从头开始迭代,就可以获得一个新的迭代器。像这样:
if (o.toString().equals(s)) {
i.remove();
i = a.iterator();
break;
}
编辑:正如@ njzk2在评论中所说,有更好的(内置)方法可以做到这一点。