明确指出java.util.Stack
是List
接口的LIFO堆栈实现
人们自然会认为,因为Stack
遵循LIFO范例,当有人试图调用从UnsupportedOperationException
继承的add
方法时,它应该抛出List
,Collection
继承自add
{1}}。
方法UnsupportedOperationException
是可选操作。即,实现它们并不一定需要实现它们,而只需在它们的调用上抛出add(int index,E e)
堆栈应该自然而然地完成,因为你只能在最后添加新元素,因为它是一个堆栈。
我很惊讶Stack
方法实际上适用于{{1}}个对象!如果您可以在其中的任何位置添加元素而不仅仅是结尾
答案 0 :(得分:2)
extends Vector,因此支持get(int)
和add(int,E)
等操作。这是一个众所周知的奇怪事物,被许多人认为是design mistake。你怎么说它会破坏堆栈的目的是真的。