从迭代器中删除数组中元素的最佳方法是什么?

时间:2018-08-01 17:16:32

标签: java arrays iterator

我有一个数组和一个迭代器。两者的类型相同,可以说是Integer,我想从迭代器中删除数组中的值。例如:

我的迭代器:1, 2, 3, 4, 5, 6

我的数组:2, 5

然后将2和5从迭代器中删除。我该怎么办?

编辑:对Java不太了解的人会对此大笑。

2 个答案:

答案 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()函数。