【发布时间】:2017-09-07 21:30:29
【问题描述】:
正如我们所知,Java 中每个实现Collection 接口的类都应该实现Iterator<E> iterator() 方法。
Stack 和Queue 是集合层次结构的一部分,也实现了这个方法。所以我们可以这样写:
Stack stack = new Stack();
// Deque stack = new ArrayDeque<>();
stack.add( "1" );
stack.add( "2" );
stack.add( "3" );
Iterator i = stack.iterator();
while ( i.hasNext() ) {
Object o = i.next();
if ( o.equals( "2" ) ) {
i.remove();
}
}
我担心的是:
我们可以从堆栈/队列的中间删除元素吗?
堆栈/队列应该只“显示”一个元素(堆栈中的最后一个元素和队列中的第一个元素)是否可以,但实际上我们能够在不调用“pop”、“enqueue”方法的情况下获取所有元素?
【问题讨论】:
-
不要使用原始类型。
标签: java data-structures collections iterator