Tirer hasard les éléments d'un vecteur java

Résolu
Bonjour,

Voilà, tout est dit dans le titre: comment tirer au hasard les éléments d'un vecteur (vector) sachant qu'on ajoute des string?

Merci.



Dieu n'a fait qu'ébaucher l'homme, c'est sur terre que chacun se crèe

1 réponse

  1. Modérateur
    Tu choisis un nombre aléatoire (voir Random.getInt) entre 0 et size()-1 et tu récupères la valeur avec get... Bref rien de bien compliqué !
    Remarque (toujours dans la documentation) : "If a thread-safe implementation is not needed, it is recommended to use ArrayList in place of Vector"
    1. Thks mais je comprends toujours pas. J'ai même consulté l'API sans y trouvé ce que je cherchai. Peux tu me donner un petit exemple stp?
    2. Modérateur
      Petit exemple qui reprend exactement ce que j'ai dit plus haut (mais générique car c'est plus joli ^^)

      private static final Random rd = new Random();
      
      public static <E> E ploufplouf(List<E> list)
      {
      	return list.get(rd.nextInt(list.size()));
      }
      
      public static void main(String...args)
      {
      	Vector<String> v = new Vector<String>();
      		v.add("tata");
      		v.add("tete");
      		v.add("titi");
      		v.add("toto");
      		v.add("tutu");
      		
      	System.out.println(ploufplouf(v));
      	
      	ArrayList<String> al = new ArrayList<String>();
      		al.add("papa");
      		al.add("pepe");
      		al.add("pipi");
      		al.add("popo");
      		al.add("pupu");
      
      	System.out.println(ploufplouf(al));
      }
    3. A quoi servent les <E> et E?
    4. Modérateur
      C'est pour être générique. Regarde la documentation par exemple Vector, il y a plein de <E> aussi, ça te permet de mettre n'importe quelle classe à la place...
    5. Sorry si je ne comprend pas tout de suite. Ca permet de mettre n'importe quelle classe à la place de......?