我的堆栈及其对应的方法在A类中。 现在在B类中,我想创建一个新的堆栈,从类A调用方法。具体来说,我想要查看A类中堆栈的元素,然后将我喜欢的那些添加到新堆栈中在B班。有人可以帮助我吗?我对此非常陌生! 附:我确实想知道如何在课程中这样做;我可以弄清楚如何在同一个类中完成它,但我试图拓宽我对跨类调用方法的理解。谢谢!
编辑: 有人要求我提到的代码: newStack.push(oldStack(StackOne).peek());
我没有那个权利,但以下是要素: StackOne是我的第一个类的名称,我在其中创建了第一个堆栈,而oldStack就在该类中。 我想从StackTwo(我的第二课)中窥探这些元素。如果我喜欢一个元素,我会把它从oldStack推送到newStack(最终导致类似于我上面发布的内容,但这不起作用)。
答案 0 :(得分:0)
这是一个在其中封装堆栈的类。
MyStack.java
import java.util.Stack;
public class MyStack<T> {
private Stack<T> stack;
public MyStack() {
stack = new Stack<T>();
}
public T peek() {
return stack.peek();
}
public void push(T item) {
stack.push(item);
}
}
Main.java
public class Main {
public static void main(String[] args) {
MyStack<String> myStackA = new MyStack<String>();
MyStack<String> myStackB = new MyStack<String>();
myStackA.push("Hello");
myStackA.push("Hi");
myStackB.push(myStackA.peek());
System.out.println(myStackA.peek()); //prints Hi
System.out.println(myStackB.peek()); //prints Hi
}
}
答案 1 :(得分:0)
我已经创建了一个程序,您可以使用它来了解如何从位于一个类(在我的情况A中)的堆栈中获取/查看值,以将其存储到位于其他类的其他堆栈中(在我的情况下为B)。
import java.util.*;
class A{
public Stack st;
public A(){
st = new Stack();
}
public void pushA(Integer a){
st.push(new Integer(a));
}
public Integer popA(){
return (Integer)st.pop();
}
public Integer peekA(){
return (Integer)st.peek();
}
}
class B{
public Stack st;
public B(){
st = new Stack();
}
public void pushB(Integer b){
st.push(b);
}
public Integer popB(){
return (Integer)st.pop();
}
public Integer peekB(){
return (Integer)st.peek();
}
}
class Main{
public static void main(String ar[]){
A stackOfA = new A();
stackOfA.pushA(12);
stackOfA.pushA(34);
stackOfA.pushA(66);
B stackOfB = new B();
stackOfB.pushB(stackOfA.peekA());
System.out.println("A:"+stackOfA.st);
System.out.println("B:"+stackOfB.st);
}
}
输出:
A:[12, 34, 66]
B:[66]