Beispiel: Gib das größte Element eines Feldes aus.
Integer[] ints = { 3, 9, -1, 0 };
System.out.println( Collections.max( Arrays.asList( ints ) ) );
Zum Ermitteln des Maximums bietet die Utility-Klasse Arrays keine Methode, daher bietet sich die max(…)-Methode von Collections an. Auch etwa zum Ersetzen von Feldelementen bietet Arrays nichts, aber Collections. Sortieren und Füllen kann Arrays aber schon, hier muss asList() nicht einspringen.
Hinweis: Wegen der Generics ist der Parameter-Typ von asList() ein Objekt-Feld, aber niemals ein primitives Feld. In unserem Beispiel von eben würde so etwas wie
int[] ints = { 3, 9, -1, 0 };
Arrays.asList( ints );
zwar kompilieren, aber die Rückgabe von Arrays.asList(ints) ist vom Typ List<int[]>, was bedeutet, die gesamte Liste besteht aus genau einem Element und dieses Element ist das primitive Feld. Zum Glück führt Collections.max(Arrays.asList(ints)) zu einem Compilerfehler, denn von einer List<int[]>, also eine Liste von Feldern, kann max(Collection<? extends T>) kein Maximum ermitteln.
>> die Rückgabe von Arrays.asList(ints) ist vom Typ List, was bedeutet, die gesamte Liste besteht aus genau einem Element und dieses Element ist das primitive Feld
Das würde ich anzweifeln.
>> public static List asList(T… a)
oder auch public static List asList(T[] a)
Der Typ T vom Array ist der Typ der Liste. ein abc[] führt zu List. Dementsprechend kompiliert der Ausdruck auch ohne Fehler (dank autoboxing wäre der Typ dann List)
Größer/Kleiner Zeichen werden rausgeparst. Das erste List sollte List-abc- sein, das zweite List-Integer-