|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Junior Member
Iscritto dal: Sep 2007
Messaggi: 20
|
[java] salvare stringhe più lunghe da una collection
Ciao a tutti!
Domanda che potrebbe sembrare banale, ma dopo tutto il giorno che sono al pc il cervello comincia a fondersi e gli occhi a incrociarsi.. Dunque, vengo al mio problema: ho una collection di stringhe, ma devo restituire solo le 3 più lunghe, come fare?? es: da [ccc,dddd,bb,eeeee,a] devo restituire solo [ccc,dddd,eeeee] Al momento mi vengono in mente solo metodi incasinatissimi, ma dovrebbe esserci una qualche soluzione più facile.. Rispondete,please!!! |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
|
Pensa facile.
1. crei una copia della collezione in un ArrayList 2. ordini l'ArrayList usando la lunghezza come termine di paragone (creando un Comparator<String> e usando Collections.sort) 3. restituisci le prime tre stringhe dell'ArrayList (se l'ordine è dalla stringa più lunga alla stringa più corta)
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me! |
|
|
|
|
|
#3 |
|
Junior Member
Iscritto dal: Sep 2007
Messaggi: 20
|
qualche pezzo di codice??
|
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
|
La prima cosa che mi viene in mente è di fare così:
Codice:
Collection<String> longStrings = new ArrayList<String> ();
for (int i = 0; i < 3; i++) {
String string = Collection.max(strings) //dove strings è la collezione di stringhe da cui estrarre le + lunghe
strings.remove(string);
longStrings.add(string);
}
Altrimenti usando la tecnica di pgi dovresti avere qualcosa del genere: Codice:
Collection<String> longStrings = new ArrayList<String> ();
Collections.sort(strings);
for (int i = 0; i < 3; i++) {
string = strings.get(strings.size() - i);
longStrings.add(string);
}
__________________
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 21:54.



















