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
]Android:使用迭代器从列表中删除元素
问题是,如果a
= [a, y, f, z, b]
和b
= [f, a]
- >的输出将是a
= [a, y, z, b
] 并且迭代器在开始时不会删除[a
]值。有没有办法重置迭代器,以便每次我迭代器从一开始就开始?break
?还是有更好的方法来解决这个问题?
问题是你永远不会重置迭代器。你可以简单地为b的每个字符串创建一个新的迭代器。但是,我建议只使用'a.removeAll(b)'而不是所有的代码。 – njzk2 2014-11-04 17:02:45
感谢,更容易 – user2456977 2014-11-04 17:27:43