Ciao a tutti, mi sono appena iscritto in questo forum. Spero tanto che riuscita ad aiutarmi. Dunque è da poco che studio la Java Standard, sia dal libro “La gudia Completa”, che dal libro per la certificazione. Sono arrivato alle Collections, ed è proprio qui che ho riscontrato la prima laguna. Qui sotto vi ho riportato il codice:
import java.util.*;
class SearchObjArray {
public static void main(String [] args) {
String [] sa = {"one", "two", "three", "four"};
Arrays.sort(sa); // #1
for(String s : sa)
System.out.print(s + " ");
System.out.println("\none = "
+ Arrays.binarySearch(sa,"one")); // #2
System.out.println("now reverse sort");
ReSortComparator rs = new ReSortComparator(); // #3
Arrays.sort(sa,rs);
for(String s : sa)
System.out.print(s + " ");
System.out.println("\none = "
+ Arrays.binarySearch(sa,"one")); // #4
System.out.println("one = "
+ Arrays.binarySearch(sa,"one",rs)); // #5
}
static class ReSortComparator
implements Comparator<String> { // #6
public int compare(String a, String b) {
return b.compareTo(a); // #7
}
}
}
L'output è il seguente:
four one three two
one = 1
now reverse sort
two three one four
one = -1
one = 2
Potreste spiegarmi il codice? Soprattutto non riesco a capire cosa significhi quel 1, - 1, 2... inoltre se alla prima riga:
Arrays.sort(sa);
Ordino l'Array col metodo sort, perchè mi stampa four, one, three, two? Non dovrebbe stamparmi one,two,three, four?
Grazie in anticipo.

.
Rispondi quotando