我是 struts2 的新手,在通过 struts2 进行操作时,我遇到了声明 valuestack 是对象堆栈和声明,其中讨论了当两个具有相同属性名称的对象存储在 value 对象上时如何进行解析。为了澄清这一点,我开始研究它是如何在 struts2 中实现的。当我进入最后一层时,我发现 struts2 在 peek 期间类似地将对象插入到 push 方法中的零位置,它从零位置获取对象。因此,根据我对 struts2 的理解,值堆栈将仅包含一个对象(这将是动作对象)。那是对的吗?如果不正确,我们什么时候可以在 valuestack 中存储多个对象而不是 action 对象?
当我通过http://en.wikipedia.org/wiki/Stack_(abstract_data_type )的堆栈时,我还提出了一些关于堆栈的基本问题。那里指出,在计算机科学中,堆栈是一种后进先出 (LIFO) 抽象数据类型和线性数据结构,其特点是两个基本操作,称为 push 和 pop 。我同意涉及推送和弹出操作的数据结构为堆栈分类。但是对后进先出的东西有疑问。当我在java中看到数组实现(也是堆栈并在同一个链接中声明)时,据我了解,它不遵循后进先出,因为我们可以通过索引访问任何元素,而不是最后一个元素有出来。如果我错了,不要喷我,因为这是我的符号。如果这是正确的,我们可以说堆栈不必是强制的 LIFO,它应该确认推送和弹出操作吗?