Java 读取ArrayStack而不清空它,此方法无效
在java中,我编写了一个基于数组的堆栈程序,我想编写一个方法 读取ArrayStack的所有元素而不清空它,因为 函数将清空ArrayStack。有什么想法吗Java 读取ArrayStack而不清空它,此方法无效,java,stack,Java,Stack,在java中,我编写了一个基于数组的堆栈程序,我想编写一个方法 读取ArrayStack的所有元素而不清空它,因为 函数将清空ArrayStack。有什么想法吗 public static <E> void aufgaben(ArrayStack<E> a) { ArrayStack<E> b = a; ArrayStack<E> c = b; ArrayStack<E> d = c; while (!
public static <E> void aufgaben(ArrayStack<E> a) {
ArrayStack<E> b = a;
ArrayStack<E> c = b;
ArrayStack<E> d = c;
while (!c.isEmpty()) {
System.out.println(c.pop());
}
}
我们不能确定任何事情,因为您的问题没有告诉我们ArrayStack类正在实现什么API 但是,方法不起作用的可能原因是pop正在从堆栈中删除元素。没有什么能让他们回头 这些声明毫无意义:
ArrayStack<E> b = a;
ArrayStack<E> c = b;
ArrayStack<E> d = c;
你所做的与从a中弹出相当
Java中对象的赋值不会复制该对象。如果愿意,它只复制对象引用指针。因此,a、b和c都指向同一个对象
我猜这是家庭作业,所以这里有一两个提示
或者在API中寻找一种方法,该方法允许您在不删除元素的情况下检查堆栈
如果没有,请考虑在拆下堆栈后重建堆栈的方法。肯定有办法。想想看。提示:第二个堆栈
我可以问一下:为什么?有什么想法吗?让您的ArrayStack类实现Iterable并实现迭代器方法以返回迭代器,这样您就可以在for循环中使用ArrayStack,比如MyObj:ArrayStack请不要将您的问题添加为Javadoc。Javadoc是用来记录方法本身的。这是为了描述它的功能、参数的用途等。是来自Commons集合的ArrayStack吗?如果是,那么它将扩展ArrayList adn,您可以使用getindex方法。