为什么java中的Stack类不会在'add'方法上抛出UnsupportedOperationException?

时间:2015-02-16 07:57:05

标签: java collections interface

明确指出java.util.StackList接口的LIFO堆栈实现 人们自然会认为,因为Stack遵循LIFO范例,当有人试图调用从UnsupportedOperationException继承的add方法时,它应该抛出ListCollection继承自add {1}}。
方法UnsupportedOperationException可选操作。即,实现它们并不一定需要实现它们,而只需在它们的调用上抛出add(int index,E e) 堆栈应该自然而然地完成,因为你只能在最后添加新元素,因为它是一个堆栈。 我很惊讶Stack方法实际上适用于{{1}}个对象!如果您可以在其中的任何位置添加元素而不仅仅是结尾

,则会破坏Stack的用途

1 个答案:

答案 0 :(得分:2)

extends Vector,因此支持get(int)add(int,E)等操作。这是一个众所周知的奇怪事物,被许多人认为是design mistake。你怎么说它会破坏堆栈的目的是真的。