Wenn ich eins nach dem anderen Daten im Stapel schiebe und Daten in der Warteschlange hinzufüge, dann wird es ohne Sortierung gespeichert, aber wenn ich Schleife benutze und dieselben Daten im Stapel schiebe und die Warteschlange hinzufüge, dann werden Daten als sortiert gespeichert. Eine andere Sache ist, wenn ich Daten im Stapel einzeln push bin, ist es Speicherdaten eins nach dem anderen, aber für die Warteschlange ist es speichern Daten nach dem Zufallsprinzip. Ich kann nicht verstehen, wie man Daten in Stack und Queue speichert. Hier ist der Code:Wie werden Daten in Stack und Queue in Java gespeichert?
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());
}
}
Ausgabe lautet:
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
Das liegt daran, dass Sie 'i' in die Listen setzen, nicht' x [i] '. –
Oh, und wenn Sie über ein Array mit Indizes iterieren, verwenden Sie 'i
Danke. Mit der foreach-Schleife wird der gleiche Wert gedruckt. –