OVH Cloud OVH Cloud

Liste cyclique

2 réponses
Avatar
Kupee
Salut, je cherche s'il existe quelque part une implémentation de liste
cyclique en java.
Une liste qui aurait une taille max et une fois atteinte le dernier
élément ajouté remplacerait le plus ancien.
Je suis étonné que Common collections de Jakarta n'ait pas ca ...
une idée ?

2 réponses

Avatar
Arnaud W.

Salut, je cherche s'il existe quelque part une implémentation de liste
cyclique en java.
Une liste qui aurait une taille max et une fois atteinte le dernier
élément ajouté remplacerait le plus ancien.
Je suis étonné que Common collections de Jakarta n'ait pas ca ...
une idée ?


J'en ai implémenté cela il y a déjà un certain temps, si cela peut
vous servir ....
http://awr.free.fr/java/io.html#CircularByteBuffer

Je précise qu'avec les "buffers" de Apache/Jakarta/Commons il est
possible de faire une liste cyclique, idem avec les buffers du package
java.nio.* du JDK.

Arnaud W.
http://awr.free.fr

Avatar
SK
Kupee wrote:
Salut, je cherche s'il existe quelque part une implémentation de liste
cyclique en java.
Une liste qui aurait une taille max et une fois atteinte le dernier
élément ajouté remplacerait le plus ancien.
Je suis étonné que Common collections de Jakarta n'ait pas ca ...
une idée ?


Bonjour,

Tu peux le faire en étendant la classe java.util.LinkedHashMap et en
redéfinissant la méthode removeEldestEntry(Map.Entry<K,V> eldest).

Un exemple tiré du javadoc :

private static final int MAX_ENTRIES = 100;

protected boolean removeEldestEntry(Map.Entry eldest) {
return size() > MAX_ENTRIES;
}