J'ai une arrayliste remplie d'entiers. J'ai juste besoin d'un moyen d'obtenir les trois premiers entiers dans le tableau. P>
6 Réponses :
Vous devez écrire votre propre comparateur et utiliser collections.sort (liste, comparateur) code> sur votre liste code>, qui apportera le top 3 entiers au sommet (ceci est purement basé sur la logique de votre comparateur). P>
Eh bien, c'est à la hauteur de l'OP. Même s'il fait un subliste, il devra toujours traverser la liste pour les obtenir. Au lieu de cela, il pouvait simplement traverser la liste triée jusqu'à la 3ème position et obtenir les valeurs! IMHO, nous devrions laisser cette partie à l'op!
En regardant la question et les tags, je pense que cela est davantage à propos de trier la liste que tout autre chose!
Utilisez collections.sort pour trier et récupérer les trois premières valeurs p>
mettre tous les éléments dans un arbreset code> à l'aide de
arbreset (collection c) code> constructeur puis utilisez
arbreset.descendatorator code> pour obtenir les 3 premiers éléments. Une liste peut contenir des doublons, en utilisant des garanties de Treeet que vous récupérez 3 valeurs plus grandes distinctes. P>
List<Integer> list; Collections.sort(list); List<Integer> top3 = new ArrayList<Integer>(list.subList(list.size() -3, list.size())); I could have simply used the subList, but the list returned from subList() is a view on the base list, so changes made there would be reflected in top3.
Utiliser Liste # SUBLIST (INT DEIDEX, INT TOINDEX)
Renvoie une vue de la partie de cette liste entre le tiindex spécifié, inclus, et toindex, exclusif. p> blockQuote>
xxx pré> selon les documents sublistes p> p> p>
Cela dépend de la taille de la liste et de la performance que vous souhaitez. Si la liste est "petite", l'une des solutions antérieures suffira, en fonction de vos besoins. P>
Si la liste est "grande" et la performance est importante, vous devez itérer via la liste et conserver le 3 plus grand à votre guise. P>
Un autre compromis est votre temps et vos bugs à l'aide de bibliothèques. Une des approches de la bibliothèque mentionnées fonctionnera dans moins de votre programmeur-Time qu'une solution codée personnalisée p>
À partir des réponses reçues, il est clair qu'il y a deux interprétations de votre question. Voulez-vous les 3 premiers articles, ou les 3 plus gros articles?