rin*_*rer 7 java queue data-structures
Queue在Java中提供FIFO数据结构.根据我所学到的,队列有责任坚持先进先出的行为.换句话说,您可能无法从队列中间删除项目.但是,在Java中,我们可以使用一个删除随机队列元素iterator.
这是一个糟糕的设计封装 - 老虎钳?或者是队列数据结构应该允许这个?
Queue<String> queue = new LinkedList<String>();
queue.add("e1");
queue.add("e2");
queue.add("e3");
queue.add("e4");
queue.remove("e3");
Run Code Online (Sandbox Code Playgroud)
Queue显然,通过成为Collection层次结构的一部分,继承了一些增加的功能.从多态的角度来看,Queue与其他任何行为一样有益,Collection因为它增加了数据结构的可移植性.
从设计角度来看,我不会说这不一定是坏事.想象一下在杂货店排队/排队.在某些情况下,客户可能需要从生产线中间移除.队列的这种特定实现支持这一点,这可能是有用的.
虽然你可以争辩说额外的方法可以让你自己在脚下射击,你可以很容易地创建一个Queue不允许像remove(Object)或者iterator.remove()你想要严格的东西的实现Queue.