Ich brauche eine Warteschlange wie CircularFifoQueue in Apache Commons aber mit der Fähigkeit Elemente rückwärts zu iterieren. I.e. Ich muss Elemente in eine Warteschlange fester Größe mit automatischer Entfernung von alten Elementen einfügen. Aber ich muss Elemente vom jüngsten Element ausgehend iterieren. Gibt es etwas in Java?Gibt es eine Deque mit fester Größe, die alte Elemente in Java entfernt?
1
A
Antwort
1
Ich kann so etwas verwenden (muss auch andere Insert-Methoden wie Push, PushLast ... schreiben), möchte aber andere verfügbare Lösungen hören (wenn sie existieren).
public class ConcurrentFixedSizeLinkedDeque<T> extends ConcurrentLinkedDeque<T> {
private int sizeLimit = Integer.MAX_VALUE;
public ConcurrentFixedSizeLinkedDeque() {
}
public ConcurrentFixedSizeLinkedDeque(Collection<? extends T> c) {
super(c);
}
public ConcurrentFixedSizeLinkedDeque(int sizeLimit) {
if(sizeLimit<0) sizeLimit=0;
this.sizeLimit = sizeLimit;
}
public ConcurrentFixedSizeLinkedDeque(Collection<? extends T> c, int sizeLimit) {
super(c);
if(sizeLimit<0) sizeLimit=0;
this.sizeLimit = sizeLimit;
}
public int getSizeLimit() {
return sizeLimit;
}
public void setSizeLimit(int sizeLimit) {
this.sizeLimit = sizeLimit;
}
@Override
public void addFirst(T e){
while(size()>=this.sizeLimit){
pollLast();
}
super.addFirst(e);
}
@Override
public void addLast(T e){
while(size()>=this.sizeLimit){
pollFirst();
}
super.addLast(e);
}
}
Verwandte Themen
- 1. Warum gibt Arrays.asList eine Liste fester Größe zurück?
- 2. erhöhen Sie die Größe der Array Deque
- 3. Concurrent Karte mit fester Größe
- 4. Gibt es eine Möglichkeit, die Elemente zu speichern, die aus jQuery.uniqueSort() in einer Variablen entfernt werden?
- 5. Liste des Deque von ganzen Zahlen java
- 6. Javascript: Variable Größe in Leinwand fester Größe
- 7. Gibt es einen Bolt-Typ mit fester Breite in C++?
- 8. Füllbereich mit Elementen fester Größe
- 9. Partition mit fester Größe einstellen
- 10. ContextMenu MenuItem DataContext gibt alte Elemente zurück
- 11. Gibt es eine Möglichkeit, die Größe/Größe Ihrer Datenbanktabellen herauszufinden?
- 12. Gibt es eine schnelle In-Memory-Warteschlange, die ich verwenden kann, die Elemente wechselt, wie es eine bestimmte Größe erreicht?
- 13. skalierbare SVG mit fester Grenze Größe
- 14. Wörterbuch mit begrenzter Größe, das älteste Elemente entfernt?
- 15. Gibt es Nachteile bei der Erstellung von TensorFlow-Platzhaltern für Eingaben variabler Größe und fester Größe?
- 16. Wie erstelle ich eine Bilddatei mit fester Größe in Android?
- 17. Postgres-Datentyp für eine Zeichenfolge fester Größe
- 18. Gibt es eine PHP-Konfiguration, die doppelte Anführungszeichen automatisch entfernt?
- 19. Knoten Bild beschneiden mit fester Größe
- 20. Initialisiere g_hash_table mit fester Größe und Werten
- 21. Iterator in Array Deque Datenstruktur in Java
- 22. Realloc: ungültige alte Größe
- 23. Wie entfernt man den Funktionszeiger von std :: deque by val?
- 24. UICollectionView entfernt alte Zellen nicht nach Bildlauf
- 25. Matrix fester Größe und Vielleicht
- 26. Zufalls div Position in fester Größe Rahmen
- 27. Zentrum mit fester Größe Image horizontal in Mutter ConstraintLayout
- 28. Google-Protokollpuffer - Puffer fester Größe?
- 29. Warum bewegen sich meine Deque-Elemente?
- 30. Gibt es eine Java-Klasse, die eine POM.xml-Datei generiert?
Haben Sie sich die Klassen durch, die die Java Deque-Schnittstelle (https://docs.oracle.com/javase/7/docs/api/java/util/Deque.html) implementieren? Jede dieser Klassen kann für Sie funktionieren, da sie eine Methode descendingIterator() bereitstellt, um in umgekehrter Reihenfolge zu iterieren. –
Aber jede Deque muss absteigendIterator() haben. Trotzdem habe ich Deque nicht gefunden mit der automatischen Entfernung von alten Elementen. – Alexandr