繁体   English   中英

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

[英]What is the best way to remove elements in an array from an Iterator?

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

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

我的数组: 2, 5

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

编辑:对编程不太了解的人放弃了投票,哈哈。

我会使用 - 就像在许多其他可用语言中一样 - 过滤器。

在公共集合中已经有一个FilterIterator 有了它,您可以过滤不需要的元素并使用通过过滤器的元素。

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);
    }        
});

也许不是最有效的答案,但我会用 for 循环来解决它并遍历你的数组。 然后对于数组中的每个元素,运行迭代器直到获得匹配项,然后调用 iterator.remove() 函数。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM