Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么java中的堆栈类不会在';添加';方法?_Java_Collections_Interface - Fatal编程技术网

为什么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)
等操作。这是一件众所周知的怪事,被许多人认为是一件怪事。你说它违背了堆栈的目的是正确的