我有一个数组和一个迭代器。两者的类型相同,可以说是Integer,我想从迭代器中删除数组中的值。例如:
我的迭代器:1, 2, 3, 4, 5, 6
我的数组:2, 5
然后将2和5从迭代器中删除。我该怎么办?
编辑:对Java不太了解的人会对此大笑。
答案 0 :(得分:2)
我会像使用其他多种语言一样使用过滤器。
在常见集合中,已经有一个FilterIterator。这样一来,您就可以过滤掉不需要的elemnet,并与通过过滤器的elemnet一起使用。
final List<Integer> values = Arrays.asList(2,5);
Iterator<Integer> filteredIterator = new FilterIterator(yourIterator, new Predicate<Integer>() {
public boolean evaluate(Integer object) {
return values.contains(object);
}
});
答案 1 :(得分:0)
也许不是最有效的答案,但是我使用了for循环来解决它并遍历您的数组。然后,对于数组中的每个元素,遍历迭代器,直到获得匹配项,然后调用iterator.remove()函数。