Comment obtenir des objets aléatoires à partir d'un flux

Permet de dire que j'ai une liste de mots et je veux créer une méthode qui prend la taille de la nouvelle liste en paramètre et retourne la nouvelle liste. Comment puis-je obtenir des mots au hasard de mon sourceList?

public List<String> createList(int listSize) {
   Random rand = new Random();
   List<String> wordList = sourceWords.
      stream().
      limit(listSize).
      collect(Collectors.toList()); 

   return wordList;
}

Oui, comment et où puis-je utiliser ma Aléatoire?

  • Est-il une raison pour utiliser un Stream ? Ne pouvez-vous pas aléatoire de la liste d'origine, et ensuite de retour une copie avec subList ?
  • Savez-vous combien de mots dans le cours d'eau de source?
  • Ce Que @AlexisC. dit. Collections.shuffle et list.subList(0,size) devrait être suffisant.
  • Voir aussi cette réponse, si il y a un grand nombre d'éléments qui pourraient faire brassage cher: stackoverflow.com/a/28655112/1441122
InformationsquelleAutor Adrian Krebs | 2015-07-29