Heim >Java >javaLernprogramm >Wie kann ich in Java effizient eine Warteschlange mit begrenzter Größe erstellen?
Größenbegrenzte Warteschlange zum Speichern der letzten N Elemente in Java
Dieser Artikel zielt darauf ab, ein häufiges Problem in der Java-Programmierung anzugehen: die Verwaltung von Warteschlangen mit eine feste Größe, die automatisch ältere Elemente verwirft, wenn neue hinzugefügt werden. Während die in der Frage manuell bereitgestellte Implementierung sicherlich realisierbar ist, wird in dieser Diskussion eine alternative Lösung aus der Apache Commons Collections-Bibliothek untersucht.
Apache Commons Collections: CircularFifoQueue
Apache Commons Collections stellt eine Klasse mit dem Namen CircularFifoQueue<> bereit. die den Anforderungen einer Warteschlange mit begrenzter Größe entspricht. Laut Dokumentation:
CircularFifoQueue ist eine First-In-First-Out-Warteschlange mit einer festen Größe, die ihr ältestes Element ersetzt, wenn sie voll ist.
Verwendung:
Implementieren einer Warteschlange mit begrenzter Größe mit CircularFifoQueue<> ist unkompliziert:
import java.util.Queue; import org.apache.commons.collections4.queue.CircularFifoQueue; Queue<Integer> fifo = new CircularFifoQueue<>(2); fifo.add(1); fifo.add(2); fifo.add(3); System.out.println(fifo); // Output: [2, 3]
Ergebnisse:
Der Beispielcode zeigt, dass die CircularFifoQueue eine Kapazität von 2 beibehält und die ältesten Elemente verwirft, wenn neue hinzugefügt werden.
Zusätzliche Optionen:
Bei Verwendung Als ältere Version von Apache Commons Collections (3.x) können Sie sich für CircularFifoBuffer entscheiden, das funktional ähnlich ist, aber keine generische Unterstützung bietet.
Schlussfolgerung:
Für Situationen Wenn Sie Warteschlangen mit begrenzter Größe verwalten müssen, bietet Apache Commons Collections mit CircularFifoQueue<> eine praktische und effiziente Implementierung. Dadurch entfällt die Notwendigkeit einer manuellen Implementierung und bietet den zusätzlichen Vorteil der Ausnahmebehandlung und Thread-Sicherheit.
Das obige ist der detaillierte Inhalt vonWie kann ich in Java effizient eine Warteschlange mit begrenzter Größe erstellen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!