Maison > Java > javaDidacticiel > le corps du texte

Mélanger() en Java

PHPz
Libérer: 2024-08-30 15:36:36
original
941 Les gens l'ont consulté

Java possède de nombreuses fonctions intégrées pour effectuer différentes opérations sur des collections ou d'autres types de données, et l'une d'entre elles est la lecture aléatoire. La fonction Shuffle est disponible dans de nombreux autres langages comme Python.

Commencez votre cours de développement de logiciels libres

Développement Web, langages de programmation, tests de logiciels et autres

  • La fonction shuffle est utilisée pour mélanger les éléments de la collection.
  • Il permute aléatoirement les éléments de la liste passés en paramètres.
  • Il existe deux méthodes pour mélanger en Java, l'une consiste à utiliser la méthode de mélange des collections et l'autre à utiliser une classe aléatoire.
  • La fonction de mélange de collections peut également être appelée de deux manières, une avec un paramètre aléatoire pour spécifier le caractère aléatoire et une autre sans paramètre.
  • shuffle()
  • shuffle(, )
  • Vous devez transmettre la liste pour que nous convertissions le tableau en liste, puis le transmettre à un collection.shuffle et convertir à nouveau le résultat en tableau.

Syntaxe pour Shuffle() en Java

Déclaration pour la méthode shuffle :

public static void shuffle(List<?> list)
Copier après la connexion
public static void shuffle(List<?> list, Random random)
Copier après la connexion

Paramètres :

  • Liste : La liste que vous passerez sera mélangée.
  • Aléatoire : C'est la fonction aléatoire passée avec une valeur de départ qui deviendra la source du hasard.

Retours :

  • La fonction shuffle ne renvoie aucune valeur ; cela mélange simplement la liste.

Exemples de Shuffle() en Java

Dans l'exemple ci-dessous, nous avons créé une liste à partir d'un tableau avec quelques alphabets et utilisé la méthode shuffle pour mélanger le tableau. Chaque fois que vous courez, vous obtenez une liste mélangée différente.

Exemple n°1

Code :

import java.util.*;
public class CollectionsShuffleExampleWithoutRandom {
public static void main(String[] args) {
List<String> list = Arrays.asList("R", "A", "H", "U", "L");
System.out.println("Before Shuffle : "+list);
Collections.shuffle(list);
System.out.println("After shuffle : "+list);
}
}
Copier après la connexion

Sortie :

Mélanger() en Java

Exemple n°2

Dans l'exemple ci-dessous, nous créons une liste chaînée d'entiers et y ajoutons des entiers. Mais ici nous avons passé un autre argument qui est la fonction Random qui deviendra la source du Randomness. Ensuite, nous avons passé la fonction Random avec la valeur de départ 5. C'est une autre saveur, ou nous pouvons dire la méthode d'utilisation de la fonction shuffle avec Randomness.

Code :

import java.util.*;
public class CollectionsShuffleWithRandom {
public static void main(String[] args) {
//Create linked list object
LinkedList<Integer> list = new LinkedList<Integer>();
//Add values
list.add(90);
list.add(100);
list.add(1);
list.add(10);
list.add(20);
System.out.println("Before Shuffle = "+list);
//Random() to shuffle the given list.
Collections.shuffle(list, new Random());
System.out.println("Shuffled with Random() = "+list);
//Random(5) to shuffle the given list.
Collections.shuffle(list, new Random(5));
System.out.println("Shuffled with Random(5) = "+list);
}
}
Copier après la connexion

Sortie :

Mélanger() en Java

Lecture aléatoire sans méthode Shuffle

Si vous souhaitez plus de contrôle sur la lecture aléatoire, vous pouvez écrire votre propre méthode pour mélanger la liste avec la méthode aléatoire et une autre approche pour mélanger la liste. Cette méthode est plus flexible et facile à intégrer dans n’importe quelle application. Vous pouvez réellement comprendre comment fonctionne la lecture aléatoire dans la méthode intégrée de Java.

Entrée : Un tableau int

Sortie : Tableau mélangé (dans un ordre aléatoire)

Exemple :

public static int[] ShuffleArray(int[] array){
Random rand = new Random();  // Random value generator
for (int i=0; i<array.length; i++) {
int randomIndex = rand.nextInt(array.length);
int temp = array[i];
array[i] = array[randomIndex];
array[randomIndex] = temp;
}
return array;
}
Copier après la connexion

La fonction ci-dessus où il vous suffit de transmettre un tableau entier, et elle renverra un tableau mélangé. À l'intérieur de la fonction, vous pouvez voir que nous itérons le tableau jusqu'à sa longueur et générons un nombre aléatoire, et il sera traité comme un index de tableau, qui sera échangé avec un autre tableau. C'est ainsi que les éléments seront échangés à l'intérieur d'un tableau. Le tableau résultant sera un tableau échangé.

À partir de la fonction ci-dessus, nous pouvons obtenir un concept de base de la fonction shuffle où une liste de valeurs sera envoyée, et un nombre aléatoire sera généré à chaque fois lors de l'itération des éléments du tableau. L'élément sera échangé avec un autre élément de la même liste avec l'index généré aléatoirement à partir d'une fonction aléatoire.

Points importants pour la fonction Shuffle

  • Cette méthode consiste à permuter aléatoirement les éléments de la liste et à les mélanger.
  • À chaque fois exécuté, le résultat peut être différent.
  • La fonction ne prend pas beaucoup de temps et s'exécute en temps linéaire.
  • Si vous fournissez une liste qui n'implémente pas l'interface RandomAccess, alors shuffle copiera d'abord la liste dans un tableau, mélangera la copie du tableau, puis la copiera dans une liste du résultat et la renverra.
  • Shuffle parcourt la liste en arrière – du dernier élément jusqu'au deuxième élément à plusieurs reprises.
  • Pendant le parcours, il sélectionne aléatoirement des éléments et les échange avec la position actuelle.
  • L'élément sélectionné au hasard provient de la partie de la liste allant du premier élément à l'élément actuel.

Exceptions :

  • UnsupportedOperationException : si la liste ou l'itérateur de liste transmis ne prend pas en charge une opération d'ensemble.

Applications de Shuffle

Il peut y avoir de nombreuses situations dans lesquelles la fonction de lecture aléatoire ci-dessous concerne certaines applications :

  • Mélanger une liste de questions dans une application d'assurance qualité.
  • Liste aléatoire des citations que vous souhaitez montrer chaque jour aux utilisateurs de votre application.
  • Application de loterie où vous souhaitez attribuer un numéro de billet à l'utilisateur.
  • Génération de numéros de transaction uniques pour un champ de paiement.
  • La génération d'un identifiant utilisateur unique pour différents utilisateurs peut être préfixée à l'identifiant utilisateur.
  • Il peut également être utilisé dans des applications cryptographiques.

Conclusion

Dans l'article ci-dessus, nous avons compris comment fonctionne la lecture aléatoire et comment vous pouvez l'utiliser. Il peut y avoir plusieurs cas d'utilisation quelque part où vous utiliseriez la fonction shuffle avec un paramètre aléatoire, sinon sans paramètre aléatoire, et certaines applications pourraient avoir besoin d'une implémentation flexible différente dans laquelle vous pouvez écrire votre propre fonction shuffle à l'aide de la fonction Random de Java.

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!

Étiquettes associées:
source:php
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!