La création de sous-ensemble d'un Ensemble en Java
J'ai un LinkedHashSet
, j'.e un ensemble ordonné. J'essaie de trouver une fonction pour simplement retourner un sous-ensemble de l'ensemble, j'.e les 20 premiers éléments de l'ensemble. Je sais que je peux le faire par la création d'un nouvel ensemble, puis le remplissage à l'aide d'une itération de la première série mais je m'attendais à quelque chose de plus concis.
A également pris un coup d'oeil à Google de Goyave bibliothèques, mais ne pouvait pas voir ce que je voulais.
- Si vous pouvez utiliser
SortedSet
alors que vous avez déjà une méthode pour prendre des sous-ensemble hors de lui.. - SortedSet est pas bon que leur ordre naturel n'est pas ce que je veux, je veux leur ordre d'insertion de la commande
Vous devez vous connecter pour publier un commentaire.
Dans La Goyave:
Noter que
Iterables.limit()
est évaluée paresseusement, de sorte qu'une seule collecte supplémentaire est créé.Vous pourriez faire ceci:
IndexOutOfBoundsException
utilisationMath.min(list.size(), 20)
de la 2ème paramètre desubList
en cas de dynamique, rempli de liste.Une solution en utilisant les ruisseaux et les collectionneurs de Java 8:
Cela suppose d'importation suivantes:
Dans Java 8, vous pouvez faire
Vous pouvez soit utiliser au premier abord un
SortedSet
comme lesous-ensemble
méthode existe sur elle.Vous pouvez également ajouter le contenu de votre jeu à un
List
et l'utilisation de lasubList
méthode. Mais il dépend de la quantité de données stockées dans votreSet
que vous ne voulez pas dupliquer un énorme volume de données.Sinon vous devriez rester à l'itération sur l'Ensemble, comme ce sera plus efficace.
Simple méthode d'aide (Vous pouvez l'utiliser pour Définir ou de toute autre collection):