Random + java + chaque fois un nouveau valeur
Fermé
ascv
-
9 nov. 2008 à 23:56
ramsis1985 Messages postés 4 Date d'inscription mardi 3 mars 2009 Statut Membre Dernière intervention 21 avril 2010 - 5 oct. 2009 à 12:39
ramsis1985 Messages postés 4 Date d'inscription mardi 3 mars 2009 Statut Membre Dernière intervention 21 avril 2010 - 5 oct. 2009 à 12:39
A voir également:
- Random + java + chaque fois un nouveau valeur
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel football - Télécharger - Jeux vidéo
- Comment créer un nouveau groupe sur whatsapp - Guide
- Nouveau site coco chat - Accueil - Réseaux sociaux
- Java apk - Télécharger - Langages
2 réponses
Marco la baraque
Messages postés
996
Date d'inscription
vendredi 9 mai 2008
Statut
Contributeur
Dernière intervention
5 novembre 2009
329
10 nov. 2008 à 11:23
10 nov. 2008 à 11:23
Bonjour !
Explications :
J'utilise ici 2 structures de données : une map et une linkedList. Dans ces deux structures de données, je vais insérer les valeurs tirées aléatoirement.
La map me permet de tester en temps constant si une valeur a déjà été tirée, mais son inconvénient est que, une fois que tu auras généré tous les nombre, ceux-ci auront été inséré dans n'importe quel ordre (pas forcément dans l'ordre dans lequel tu les as inséré).
La linkedList permet de conserver ton ordre d'insertion.
Pour récapituler, la map sert à tester rapidement si on a déjà tiré le nombre qu'on vient de tirer.
La linkedList à stocker les chiffres générés.
N'hésite pas si tu as des questions.
Cordialement,
import java.util.HashMap; import java.util.Iterator; import java.util.LinkedList; import java.util.List; import java.util.Map; public class Random8 { private static final int MAX_VALUE = 8; public static void main(String[] args) { Map<Integer, Integer> map = new HashMap<Integer, Integer>(); List<Integer> list = new LinkedList<Integer>(); int insertedValues = 0; while (insertedValues < MAX_VALUE) { Integer random = new Integer((int) Math.ceil(Math.random() * 8)); if(!map.containsKey(random)) { map.put(random, null); list.add(random); insertedValues++; } } Iterator<Integer> it = list.iterator(); while (it.hasNext()) { //traitement souhaité (ici affichage) System.out.println(it.next()); } } }
Explications :
J'utilise ici 2 structures de données : une map et une linkedList. Dans ces deux structures de données, je vais insérer les valeurs tirées aléatoirement.
La map me permet de tester en temps constant si une valeur a déjà été tirée, mais son inconvénient est que, une fois que tu auras généré tous les nombre, ceux-ci auront été inséré dans n'importe quel ordre (pas forcément dans l'ordre dans lequel tu les as inséré).
La linkedList permet de conserver ton ordre d'insertion.
Pour récapituler, la map sert à tester rapidement si on a déjà tiré le nombre qu'on vient de tirer.
La linkedList à stocker les chiffres générés.
N'hésite pas si tu as des questions.
Cordialement,
ramsis1985
Messages postés
4
Date d'inscription
mardi 3 mars 2009
Statut
Membre
Dernière intervention
21 avril 2010
5 oct. 2009 à 12:39
5 oct. 2009 à 12:39
bien