0

次のコードがあるとします。

public Stack s1;
public Stack s2;

//I want to take the top element from s1 and push it onto s2

s1.pop();

//Gather recently popped element and assign it a name.

s2.push(recentlyPopped);

これをどのように行うかについてのアイデアはありますか?ありがとう。

4

3 に答える 3

3

基本的な形は

s2.push(s1.pop());

2番目のスタックにプッシュする前/後に最初のスタックからのデータを処理する必要がある場合は、使用できます

YourClass yourClass = s1.pop();
//process yourClass variable...
s2.push(yourClass);
//more process to yourClass variable...

メソッドを使用する前に、s1 が空でないことを確認してくださいpop。そうしないと、EmptyStackException が発生する可能性があります。

if (!s1.isEmpty()) {
    s2.push(s1.pop());
}
于 2012-10-19T03:01:45.907 に答える
1

試す

String[] inputs = { "A", "B", "C", "D", "E" };
Stack<String> stack1 = new Stack<String>();
Stack<String> stack2 = new Stack<String>();
for (String input : inputs) {
  stack1.push(input);
}
System.out.println("stack1: " + stack1);
System.out.println("stack2: " + stack2);
stack2.push(stack1.pop());
System.out.println("stack1: " + stack1);
System.out.println("stack2: " + stack2);

出力は次のようになります。

stack1: [A, B, C, D, E]
stack2: []
stack1: [A, B, C, D]
stack2: [E]
于 2012-10-19T03:15:03.513 に答える
0

問題に指定されていない他の制約がない限り。1つのアプローチは次のとおりです。

YourElementType elem = s1.pop();

s2.push(elem);
于 2012-10-19T03:02:33.750 に答える