Java struts2和stack中有关valuestack的一些问题?

Java struts2和stack中有关valuestack的一些问题?,java,struts2,stack,Java,Struts2,Stack,我是struts2新手,在实际操作中,我遇到了一个语句,它说valuestack是对象和它讨论的语句的堆栈 当两个具有相同属性名称的对象存储在值对象上时,如何进行解析。为了澄清这一点,我开始寻找 它是如何在struts2中实现的。当我进入最后一级时,我发现struts2简单地将对象插入push方法中的零位置 在peek期间,它从零位置获取对象所以根据我在struts2下的理解,值堆栈将只包含一个对象(这将是 动作对象)。对吗?如果不正确,我们什么时候可以在valuestack中除了action对

我是struts2新手,在实际操作中,我遇到了一个语句,它说valuestack是对象和它讨论的语句的堆栈 当两个具有相同属性名称的对象存储在值对象上时,如何进行解析。为了澄清这一点,我开始寻找 它是如何在struts2中实现的。当我进入最后一级时,我发现struts2简单地将对象插入push方法中的零位置 在peek期间,它从零位置获取对象所以根据我在struts2下的理解,值堆栈将只包含一个对象(这将是 动作对象)。对吗?如果不正确,我们什么时候可以在valuestack中除了action对象之外存储多个对象?

当我在上浏览stack时,我还提出了一些关于stack的基本问题。据说 在计算机科学中,堆栈是后进先出(LIFO)抽象数据类型和线性数据结构,以两种基本操作为特征,称为push和pop . 我同意涉及push和pop操作的数据结构对堆栈进行分类。但是我对后进先出的东西产生了怀疑 另外,在同一链接中堆叠和说明),据我所知,它不遵循后进先出法,因为我们可以通过索引访问任何元素,而不一定是最后一个元素
必须出来。如果我错了,不要解雇我,因为这是我的符号如果这是正确的,我们可以说堆栈不必是强制后进先出的,它应该确认推送和弹出操作吗?

不,值堆栈在几乎所有情况下都不会包含单个对象,如果它只允许单个对象,那么堆栈就不会太大

当您在位置0处插入一个对象时,它是一个推送——以前作为位置0的对象将位于位置1,以此类推。使用
insert
方法,它是一个正常推送

实际上,所有正常的操作调用都会在堆栈上有多个对象。使用
标记(下图)或转储堆栈都可以很容易地证明这一点。此外,将向JSP页面上的堆栈添加对象,拦截器可以添加对象,等等

你们关于堆栈是后进先出的观察很有趣,但最终是无关的:正常的堆栈操作(推,弹出)是后进先出的原因。这并不妨碍堆栈实现提供额外的访问模式



不,几乎在所有情况下,值堆栈都不会包含单个对象,如果它只允许一个对象,那么堆栈也不会太大

当您在位置0处插入一个对象时,它是一个推送——以前作为位置0的对象将位于位置1,以此类推。使用
insert
方法,它是一个正常推送

实际上,所有正常的操作调用都会在堆栈上有多个对象。使用
标记(下图)或转储堆栈都可以很容易地证明这一点。此外,将向JSP页面上的堆栈添加对象,拦截器可以添加对象,等等

你们关于堆栈是后进先出的观察很有趣,但最终是无关的:正常的堆栈操作(推,弹出)是后进先出的原因。这并不妨碍堆栈实现提供额外的访问模式



+1戴夫。我正在打字答题。真是一个详细的问题explanation@UmeshAwasthi我知道高中的打字课总有一天会有回报的!Dave当我看到ognlValueStack中的push方法时,我发现它将对象插入arraylist中的0位置。因此,我对“以前作为位置0的对象将位于位置1”的语句感到有点困惑?。也因为这个只有i arraylist的实现,我说在这种情况下VS似乎不遵循LIFO?@MSach有什么让人困惑的?虽然我不确定您在看什么--
CompoundRoot
类没有“在0处插入”,但它调用
add(0,E)
add(n,E)
的Javadocs声明:“在列表中的指定位置插入指定元素。将当前位于该位置的元素(如果有)和任何后续元素向右移动(将一个元素添加到其索引)。”这就是我所说的。谢谢Dave。得到许可。最后一个问题,我相信你一定也有答案。compoundroot扩展arraylist而不是stack有什么具体的原因吗?+1 Dave。我正在键入答案。真的很详细explanation@UmeshAwasthi我知道高中的打字课总有一天会有回报的!Dave当我看到ognlValueStack中的push方法时,我发现它将对象插入arraylist中的0位置。因此,我对“以前作为位置0的对象将位于位置1”的语句感到有点困惑?。也因为这个只有i arraylist的实现,我说在这种情况下VS似乎不遵循LIFO?@MSach有什么让人困惑的?虽然我不确定您在看什么--
CompoundRoot
类没有“在0处插入”,但它调用
add(0,E)
add(n,E)
的Javadocs声明:“在列表中的指定位置插入指定元素。将当前位于该位置的元素(如果有)和任何后续元素向右移动(将一个元素添加到其索引)。”这就是我所说的。谢谢Dave。得到许可。最后一个问题,我相信你一定也有答案。compoundroot扩展arraylist而不是堆栈有什么具体原因吗?