Maison > Java > javaDidacticiel > Comment puis-je créer efficacement une file d'attente de taille limitée en Java ?

Comment puis-je créer efficacement une file d'attente de taille limitée en Java ?

Barbara Streisand
Libérer: 2024-11-29 05:03:10
original
776 Les gens l'ont consulté

How Can I Efficiently Create a Size-Limited Queue in Java?

File d'attente de taille limitée pour le stockage des N derniers éléments en Java

Cet article vise à résoudre un problème courant en programmation Java : la gestion des files d'attente avec une taille fixe qui supprime automatiquement les éléments plus anciens lors de l'ajout de nouveaux. Bien que l'implémentation fournie manuellement dans la question soit certainement viable, cette discussion explore une solution alternative de la bibliothèque Apache Commons Collections.

Apache Commons Collections : CircularFifoQueue

Apache Commons Collections fournit une classe nommée CircularFifoQueue<> qui répond aux exigences d’une file d’attente de taille limitée. Selon sa documentation :

CircularFifoQueue est une file d'attente premier entré, premier sorti avec une taille fixe qui remplace son élément le plus ancien s'il est plein.

Utilisation :

Mise en œuvre d'une file d'attente de taille limitée avec CircularFifoQueue<> est simple :

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]
Copier après la connexion

Résultats :

L'exemple de code démontre que CircularFifoQueue maintient une capacité de 2, supprimant les éléments les plus anciens lorsque de nouveaux sont ajoutés.

Options supplémentaires :

Si vous utilisez un ancienne version d'Apache Commons Collections (3.x), vous pouvez opter pour CircularFifoBuffer, qui est fonctionnellement similaire mais ne prend pas en charge les génériques.

Conclusion :

Pour les situations où vous devez gérer des files d'attente de taille limitée, Apache Commons Collections fournit une implémentation pratique et efficace avec CircularFifoQueue<>. Cela élimine le besoin d'une implémentation manuelle et offre l'avantage supplémentaire de la gestion des exceptions et de la sécurité des threads.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal