我正在寻找一个
例如,这样的
java.util.Queue
的实现方式,它最多只能排队相同元素一次。例如,这样的
specialQueue
应该表现如下:E e1;
E e2;
E e3;
//...
assertThat( e1, is(e2) );
assertThat( e1, is(not(e3)) );
Queue<E> specialQueue;
//...
specialQueue.offer(e1);
specialQueue.offer(e2);
specialQueue.offer(e3);
assertThat( specialQueue.poll(), is(e1) );
assertThat( specialQueue.poll(), is(e3) );
assertThat( specialQueue.poll(), is(null) );
// FIFO semantics are not relevant to the question
specialQueue.offer(e3)
assertThat( specialQueue.poll(), is(null) );
我想出了一个管理内部 Set<E> alreadySeenElements
的实现,并通过检查该集合以防止将元素添加到委派队列中。 我想知道是否已经存在经过“实战测试”的实现。
Queue
子类,例如java.util.ArrayDeque
,它明确地删除了容量限制。 - Abdull