Java 在不删除的情况下更新堆栈信息是否正确?

Java 在不删除的情况下更新堆栈信息是否正确?,java,data-structures,stack,Java,Data Structures,Stack,我有一个带有LinkedList的堆栈 我想按id更新元素的信息(我使用的是compareTo,没关系) 例如,我的堆栈 托普->约翰、马里奥、安娜、迈克尔 我想更新Person对象中Anna的信息(年龄等) 当我使用LinkedList时,我应该迭代列表并更新值吗? 不对吗? 因为概念是堆栈只能访问其顶部 我应该换一堆再放回去吗? 我应该迭代和更新吗 非常感谢 我的堆栈: public class LittleStack<E> { private SimplyLinked

我有一个带有LinkedList的堆栈

我想按id更新元素的信息(我使用的是compareTo,没关系)

例如,我的堆栈

托普->约翰、马里奥、安娜、迈克尔

我想更新Person对象中Anna的信息(年龄等)

当我使用LinkedList时,我应该迭代列表并更新值吗? 不对吗? 因为概念是堆栈只能访问其顶部

我应该换一堆再放回去吗? 我应该迭代和更新吗

非常感谢

我的堆栈:

public class LittleStack<E> {

    private SimplyLinkedList<E> elements; 

    public LittleStack() {
        elements= new SimplyLinkedList<>();
    }

    public boolean push(E obj) {
        elements.insertAtBegin(obj);
        return true;
    }

    public E pop() {
      return elements.removeFromBegin();
    }

    public E getTop() {
        return this.elements.getInicio().getObj();
    }       
公共类LittleStack{
私有简单链接列表元素;
公共垃圾堆(){
元素=新的SimpleLinkedList();
}
公共布尔推送(E obj){
元素。插入标记(obj);
返回true;
}
公共E-pop(){
返回元素。removeFromBegin();
}
公共E getTop(){
返回这个.elements.getInicio().getObj();
}       

如果问题域指定堆栈作为数据结构,请使用第二个堆栈

在伪代码中:

  • 创建stack2
  • 将元件从堆栈1中弹出并推到堆栈2上
  • 重复,直到你找到安娜
  • 修改安娜
  • 将Anna推回stack1
  • 从stack2中弹出元素并将其推到stack1上
  • 重复此操作,直到stack2为空

严格地说,如果你要公开一个堆栈,那么你不能迭代列表,你必须弹出然后再推。当你使用一个列表来实现你的堆栈时,当然可以这样做,但是我想说,如果你需要迭代,那么对于你的程序来说,列表可能是一个更好的选择。非常感谢。我认为在c小姑娘,这是可能的。但在另一个类中,只有顶层有访问权限。这确实是我的想法。但是更新操作在堆栈类中。我想我可以做两种方式。非常感谢!这确实是我的想法。但是更新操作在堆栈类中。我想我可以做两种方式。非常感谢!