


Comment choisir un élément aléatoire dans un HashSet ou un LinkedHashSet en Java ?
Oct 28, 2024 am 02:57 AMChoisir un élément aléatoire dans un ensemble
Récupérer un élément aléatoire dans un ensemble peut être une opération pratique dans divers scénarios de programmation. Java propose deux types courants d'ensembles, HashSet et LinkedHashSet, chacun avec ses caractéristiques uniques. Cet article explore les approches de sélection d'un élément aléatoire parmi ces ensembles.
HashSet
Un HashSet est une collection non ordonnée qui garantit des éléments uniques. Pour choisir une entrée aléatoire, déterminez la taille de l'ensemble et générez un entier aléatoire dans cette plage. Parcourez les éléments, en comptant chacun jusqu'à atteindre l'index choisi au hasard, et renvoyez l'élément correspondant.
<code class="java">int size = myHashSet.size(); int item = new Random().nextInt(size); // In real life, the Random object should be rather more shared than this int i = 0; for(Object obj : myhashSet) { if (i == item) return obj; i++; }</code>
LinkedHashSet
Un LinkedHashSet étend HashSet en préservant l'insertion commande. La même approche mentionnée ci-dessus peut être appliquée pour récupérer un élément aléatoire, puisque l'ordre d'insertion est conservé.
<code class="java">int size = myHashSet.size(); int item = new Random().nextInt(size); // In real life, the Random object should be rather more shared than this int i = 0; for(Object obj : myhashSet) { if (i == item) return obj; i++; }</code>
Ces méthodes fournissent un moyen simple de sélectionner un élément aléatoire dans un HashSet ou un LinkedHashSet en Java. Ils peuvent être implémentés dans diverses applications, telles que la génération de collections mélangées, la sélection d'éléments pour des expériences de simulation ou la création de structures de données pseudo-aléatoires.
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!

Article chaud

Outils chauds Tags

Article chaud

Tags d'article chaud

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Comment fonctionne le mécanisme de chargement de classe de Java, y compris différents chargeurs de classe et leurs modèles de délégation?

Top 4 frameworks JavaScript en 2025: React, Angular, Vue, Svelte

Comment utiliser Maven ou Gradle pour la gestion avancée de projet Java, la création d'automatisation et la résolution de dépendance?

Comment puis-je implémenter des techniques de programmation fonctionnelle en Java?

Node.js 20: Boosts de performances clés et nouvelles fonctionnalités

Iceberg: L'avenir des tables de Data Lake

Comment puis-je utiliser JPA (Java Persistance API) pour la cartographie relationnelle des objets avec des fonctionnalités avancées comme la mise en cache et le chargement paresseux?

Comment implémenter la mise en cache à plusieurs niveaux dans les applications Java à l'aide de bibliothèques comme la caféine ou le cache de goyave?
