为什么java中的堆栈类不会在';添加';方法?
它明确规定,为什么java中的堆栈类不会在';添加';方法?,java,collections,interface,Java,Collections,Interface,它明确规定,java.util.Stack是List接口的后进先出堆栈实现。 人们自然会认为,由于Stack遵循后进先出范式,当有人试图调用它从List继承的add方法时,它应该抛出UnsupportedOperationException,而后者又从Collection继承 方法add是一个可选操作。i、 实现它们并不一定需要e实现,而是可以在调用时抛出一个UnsupportedOperationException。 堆栈自然应该这样做,因为您只能在最后一个堆栈中添加新元素,因为它是一个堆栈。
java.util.Stack
是List
接口的后进先出堆栈实现。人们自然会认为,由于
Stack
遵循后进先出范式,当有人试图调用它从List
继承的add
方法时,它应该抛出UnsupportedOperationException
,而后者又从Collection
继承方法
add
是一个可选操作。i、 实现它们并不一定需要e实现,而是可以在调用时抛出一个UnsupportedOperationException
。堆栈自然应该这样做,因为您只能在最后一个堆栈中添加新元素,因为它是一个堆栈。 我很惊讶
add(int-index,ee)
方法在Stack
对象上实际工作!如果您可以将元素添加到堆栈中的任何位置,而不仅仅是它的结尾,则会破坏堆栈的目的,因此支持诸如get(int)
和add(int,E)
等操作。这是一件众所周知的怪事,被许多人认为是一件怪事。你说它违背了堆栈的目的是正确的