Maison >Java >javaDidacticiel >Comment sélectionner aléatoirement un élément d'un HashSet ou d'un LinkedHashSet en Java ?

Comment sélectionner aléatoirement un élément d'un HashSet ou d'un LinkedHashSet en Java ?

DDD
DDDoriginal
2024-10-29 03:11:30834parcourir

How to Randomly Select an Element from a HashSet or LinkedHashSet in Java?

Sélection d'éléments aléatoires dans un ensemble

La sélection d'un élément aléatoire dans un ensemble peut être une opération utile dans divers scénarios de programmation. En Java, s'il s'agit spécifiquement d'un HashSet ou d'un LinkedHashSet, il existe quelques approches à considérer.

Approche :

La solution fournie utilise un algorithme simple pour obtenir ce. Cela implique :

  1. Déterminer la taille de l'ensemble (size) à l'aide de la méthode size().
  2. Générer un entier aléatoire (élément) dans la plage [0, taille-1 ] en utilisant nextInt(size).
  3. Itérer dans l'ensemble, en gardant une trace de l'index actuel (i)
  4. Lorsque i correspond à l'élément généré aléatoirement, l'objet correspondant est renvoyé.

Exemple de code :

<code class="java">int size = myHashSet.size();
int item = new Random().nextInt(size); // Consider using a shared Random object for efficiency
int i = 0;
for (Object obj : myHashSet) {
    if (i == item) {
        return obj;
    }
    i++;
}</code>

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!

Déclaration:
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