私は1つ1つのデータをスタックにプッシュし、キューにデータを追加すると、並べ替えなしで保存されますが、ループを使用してこれらの同じデータをスタックにプッシュし、もう一つは、スタックデータを1つずつスタックにプッシュするときに、ストアデータを1つずつ並べ替えるだけですが、キューにはランダムにデータが格納されます。スタックとキューにデータストアを格納する方法を理解できませんか? ここでコード:データをJavaのスタックとキューに格納する方法は?
import java.util.PriorityQueue;
import java.util.Queue;
import java.util.Stack;
public class Stack_Queue_RealtionTwo {
public static void main(String[] args) {
Stack<Integer> stack = new Stack<>();
Queue<Integer> queue = new PriorityQueue<Integer>();
stack.push(5);
stack.push(2);
stack.push(3);
stack.push(1);
stack.push(4);
stack.push(6);
queue.add(5);
queue.add(2);
queue.add(3);
queue.add(1);
queue.add(4);
queue.add(6);
System.out.println("STACK: " + stack + "\nQUEUE: " + queue);
System.out.println("\nAFTER POP AND POLL\n");
System.out.println("STACK: " + stack.pop() + "\nQUEUE: " + queue.poll());
stack.clear();
queue.clear();
///using loop
int[] x = {5, 2, 3, 1, 4, 6};
for (int i = 0; i <= x.length; i++) {
stack.push(i);
queue.add(i);
}
System.out.println("\nSTACK: " + stack + "\nQUEUE: " + queue);
System.out.println("\nAFTER POP AND POLL\n ");
System.out.println("STACK: " + stack.pop() + "\nQUEUE: " + queue.poll());
}
}
出力は、次のとおりです。
STACK: [5, 2, 3, 1, 4, 6]
QUEUE: [1, 2, 3, 5, 4, 6]
AFTER POP AND POLL
STACK: 6
QUEUE: 1
STACK: [0, 1, 2, 3, 4, 5, 6]
QUEUE: [0, 1, 2, 3, 4, 5, 6]
AFTER POP AND POLL
STACK: 6
QUEUE: 0
これは、x [i]ではなく、リストに 'i'を入れるためです。 '。 –
ああ、インデックスを持つ配列を反復処理する場合は、 '<='の代わりに 'i
ありがとうございます。 foreachループを使用すると、同じ値が出力されます。 –