Ho un arraylist pieno di interi. Ho solo bisogno di un modo per ottenere i primi tre numeri interi nell'arrayist.Ottenere i primi 3 valori più alti nell'arrayist?
risposta
È necessario scrivere il proprio comparatore e utilizzare Collections.sort(list, comparator)
sul proprio ArrayList
, che porterà i primi 3 numeri interi in cima (questo è puramente basato sulla logica nel comparatore).
Quindi fare sottocategoria? – kosa
Bene, questo dipende dall'OP. Anche se fa una sottolista, dovrà comunque attraversare la lista per ottenerli. Invece potrebbe semplicemente attraversare la lista ordinata, fino alla 3a posizione e ottenere i valori! IMHO, dovremmo lasciare quella parte all'OP! – SudoRahul
Guardando la domanda e i tag, penso che questo sia più su come ordinare la lista, che su qualsiasi altra cosa! – SudoRahul
uso Collections.sort per ordinare e recuperare i primi tre valori
Mettere tutti gli elementi in un TreeSet
utilizzando TreeSet(Collection c)
costruttore quindi utilizzare TreeSet.descendingIterator
per ottenere i primi 3 elementi. Un elenco può contenere duplicati, utilizzando TreeSet garantisce di recuperare 3 valori distinti più grandi.
List<Integer> list;
Collections.sort(list);
List<Integer> top3 = new ArrayList<Integer>(list.subList(list.size() -3, list.size()));
ho potuto usare semplicemente sottolista, ma l'elenco restituito da sottoelenco() è una vista sulla lista di base, pertanto le modifiche effettuate ci sarebbe riflessa in top3.
Fare uso di List#subList(int fromIndex,int toIndex)
Restituisce una vista della porzione di questa lista tra il fromIndex specificato, inclusivo, e toIndex, esclusivo.
yourList.subList(yourList.size() -n, yourList.size());
Come da documentazione sottolista
Essa dipende dalla dimensione della lista e ciò che si desidera prestazioni. Se l'elenco è "piccolo", qualsiasi soluzione precedente sarà sufficiente, a seconda delle esigenze.
Se l'elenco è "grande" e le prestazioni sono importanti, è necessario scorrere l'elenco e mantenere i 3 più grandi man mano che si procede.
Un altro compromesso è il tuo tempo e bug vs utilizzando le librerie. Uno degli approcci bibliografici menzionati funzionerà in meno del tempo del programmatore rispetto a una soluzione con codice personalizzato
- 1. Come ottenere il nome della colonna della variabile con i primi 10 valori più alti?
- 2. Trova i primi valori non nulli per più colonne
- 3. C serie # stringa di ottenere solo i primi 10 valori
- 4. I valori più alti e più bassi di un determinato attributo in jQuery o Javascript
- 5. Scipy.sparse.csr_matrix: come ottenere i primi dieci valori e indici?
- 6. Come ottenere i primi 10 valori in un file JSON
- 7. Come ottengo diversi valori più alti da una tabella?
- 8. Funzione PHP per ottenere i primi 5 Valori dell'array
- 9. Il metodo più rapido ed efficiente per cercare i primi 3 numeri?
- 10. Ricerca dei valori n più alti in una mappa
- 11. Mantenere i 2 più alti valori di ogni riga in un elenco di matrici r
- 12. Ottieni le chiavi con i valori più alti da una hashmap?
- 13. Come si ottengono i primi 3 elementi in Python OrderedDict?
- 14. Rimuovere i primi 3 caratteri in var nel file batch?
- 15. Come puoi evitare che i punteggi fasulli più alti vengano visualizzati in un elenco di punteggi più alti?
- 16. tracciare i primi 5 valori da una tabella in R
- 17. come rimuovere i primi 3 caratteri da nsstring?
- 18. Come ottenere i primi n elementi da Hash nel rubino?
- 19. I primi elementi dell'elenco interno nel modo più efficiente possibile
- 20. Ottenere i primi n record per ciascun gruppo in neo4j
- 21. Come ottenere i primi n elementi di una std :: map
- 22. funzione random: valori più alti appaiono meno spesso di quanto inferiore
- 23. Ottenere i nomi degli oggetti dall'enumerazione con più valori zero
- 24. ottenere tutti i valori di più file selezionare con jQuery
- 25. Selezionare i 3 dischi più recenti in cui i valori di una colonna sono distinte
- 26. In R, come faccio a impostare i primi valori di un vettore lungo sui valori di uno più corto?
- 27. Ottenere primi n elementi da Lista
- 28. Javascript confronta 3 valori
- 29. Scikit Learn TfidfVectorizer: Come ottenere i primi n termini con il punteggio tf-idf più alto
- 30. SQL SELECT per ottenere i primi N interi positivi
Dalle risposte ricevute è chiaro che ci sono due interpretazioni della tua domanda. Vuoi i primi 3 articoli o i 3 oggetti più grandi? – andy256