Java Standard: Klasse Arrays

Aus Wikibooks


Die Klasse Arrays enthält statische Methoden, die bei der Umsetzung einfacher Standard-Aufgaben bei Arrays helfen. Zu diesen Aufgaben gehören die Initialisierung, die Sortierung und die Suche in sortierten Arrays. Die Methoden unterstützen alle Generics, also alle primitiven Datentypen; zusätzlich wird eine Methode für die Bearbeitung beliebiger Objekt-Ableitungen bereit gestellt. Für sie müssen die zu verarbeitenden Objekte zusätzlich das Interface Comperator implementieren.

Es ist ebenfalls möglich, nur Teilbereiche des Arays zu bearbeiten. In diesem Fall wird den Methoden der gewünschte Bereich benannt, den die Methode bearbeiten soll; dies geschieht über zwei Integer-Parameter rangeFrom und rangeTo. Diese Methoden können Exceptions werfen. Sie sind undeklariert, so dass die Programmierung ggf. auf eine Fehlerbehandlung verzichten kann. Die geworfenen Exceptions sind:

  • ArrayIndexOutOfBoundsException - Wenn rangeFrom kleiner 0 ist oder rangeTo auf ein Feld hinter dem Ende des Arrays verweist, also größer oder gleich array.length ist.
  • IllegalArgumentException - Wenn rangeFrom größer als rangeTo ist

Außerdem wird von allen Methoden eine NullPointerException ausgelöst, wenn das übergebene Array oder gegebenenfalls der übergebene Comparator null ist.

Die Klasse Arrays wurde in der Java-Version 1.2 eingeführt. Viele Methoden sind aber erst später hinzugekommen oder um zusätzliche Aufrufmöglichkeiten erweitert worden.

Übersicht über die unterstützen Funktionen[Bearbeiten]

  • asList - Erzeugt einen List-Wrapper um ein beliebiges Array, der zur Initialisierung einer konkreten List-Klasse mit diesem Array als Inhalt genutzt werden kann. Ab Java-Version 1.2
  • binarySearch - Führt eine (schnelle) binäre Suche in einem sortierten Array aus. Ab Java-Version 1.2
  • compare - Vergleicht zwei Arrays gleichen Typs nach der alphabetischen Reihenfolge. Ab Java-Version 9.
  • compareUnsigned - Wie compare(), ignoriert aber das Vorzeichen. Ab Java-Version 9.
  • copyOf - Kopiert ein anzugebendes Array mit vorgegebener Länge in das aktuelle Array. Wenn das neue Array länger ist als das Original werden die neuen Werte mit dem Standardwert 0 bzw. null aufgefüllt. Ab Java-Version 6.
  • copyOfRange - Wie copyOf, aber kopiert nur einen vorgegebenen Ausschnitt aus dem Original-Array. Ab Java-Version 6.
  • deepEquals - Vergleicht zwei Arrays nach den tatsächlichen Werten und Atributen (deep copy). Ab Java-Version 5.
  • deepHashCode - Erstellt einen Hashcode aufgrund der tatsächlichen Werte des Arrays (deep copy). Ab Java-Version 5.
  • deepToString - Erstellt einen String aufgrund der tatsächlich hinterlegten Werte des Arrays (deep copy). Ab Java-Version 5.
  • equals - Vergleicht zwei Arrays gleichen Typs auf gleiche Länge und gleichen Wert der einzelnen Elemente an jeder einzelnen Stelle. Die Methode benutzt einen vereinfachten Kopiermechanismus (shallow copy); für eine deep copy steht die Methode deepEquals zur Verfügung.Ab Java-Version 1.2
  • fill - Initialisiert ein Array mit einem vorgegebenen Wert. Ab Java-Version 1.2
  • hashCode - Ermittelt einen Hashcode auf der Grundlage des übergebenen Arrays. Die Methode benutzt einen vereinfachten Kopiermechanismus (shallow copy); für eine deep copy steht die Methode deepHashCode zur Verfügung.Ab Java-Version 5.
  • mismatch - Durchsucht zwei Arrays gleichen Typs nach der ersten Ungleichheit. Ab Java-Version 9.
  • parallelPrefix - Ab Java-Version 8.
  • parallelSetAll - Ab Java-Version 6.
  • parallelSort - Sortiert ein Array in aufsteigender Reihenfolge. Ab Java-Version 6.
  • setAll - Initialisiert das vorgegebene Array mit Werten, die von einer eigenen, an die Methode übergebenen Funktion berechnet werden. Ab Java-Version 8.
  • sort - Sortiert ein Array mit einem (schnellen) Quicksort-Algorithmus in aufsteigender Reihenfolge. Gleiche Werte bleiben dabei an ihrer Stelle, wodurch Mehrfachsortierungen bei Objekten möglich werden. Ab Java-Version 1.2
  • spliterator - Ab Java-Version 8.
  • stream - Wandelt das übergebene Array in einen Stream des entsprechenden Typs um. Ab Java-Version 6.
  • toString - Liefert den Inhalt des Arrays als String zurück. Die Einzelwerte stehen in einfachen eckigen Klammern und werden durch Kommata und Leerzeichen getrennt. Die Methode benutzt einen vereinfachten Kopiermechanismus (shallow copy); für eine deep copy steht die Methode deepToString zur Verfügung. Ab Java-Version 5.

Zusätzlich unterstützt die Klasse alle Methoden der Klasse Object, von der die Klasse Arrays direkt abgeleitet ist.