1. Arrays
Klasse
Wie bereits erwähnt, sind Arrays sehr nützlich und werden häufig in der Programmierung verwendet.
Den Java-Entwicklern fiel sehr schnell auf, dass Java-Programmierer bei der Arbeit mit Arrays oft den gleichen Code schreiben. Kopieren Sie beispielsweise einen Teil eines Arrays in ein anderes Array, füllen Sie jede Zelle eines Arrays mit demselben Wert, zeigen Sie den Inhalt eines Arrays in einem praktischen Format an usw.
Aus diesem Grund haben sie die spezielle Arrays
Klasse (ihr vollständiger Name lautet java.util.Arrays
) erstellt und darin die beliebtesten Array-bezogenen Aktionen integriert.
Es gibt viele Methoden für jeden Anlass, aber zunächst betrachten wir nur zehn davon – die einfachsten und am häufigsten verwendeten.
2.Arrays.toString()
Die erste Methode, die wir uns ansehen werden, heißt Arrays.toString()
. Aber zuerst ein kleiner Hintergrund.
Jedes Array in Java verfügt über eine toString()
Methode, die eine „textuelle Darstellung des Arrays“ zurückgibt. Mit der folgenden Anweisung können Sie eine Textdarstellung eines Arrays erhalten:
String str = name.toString();
Wobei name
ist der Name der Array-Variablen und str
der Name der Variablen, die die Zeichenfolgendarstellung des Arrays speichert.
Wenn Sie jedoch versuchen, das Array mit dieser Methode auf dem Bildschirm auszugeben , werden Sie höchstwahrscheinlich etwas wie Folgendes sehen:System.out.println(name)
I@37afeb11
Der erste Buchstabe I
bedeutet, dass es sich um ein int
Array handelt, und die Symbole danach @
geben die Adresse des Arrays im Speicher an. Einerseits sind das genau die Informationen, die in der Array-Variablen gespeichert sind, andererseits haben wir aber etwas anderes erwartet, oder?
Wir wollten die Werte im Array sehen! Und genau aus diesem Grund haben sie die Methode entwickelt Arrays.toString()
– um die Werte eines Arrays anzuzeigen. Wir nennen es so:
String str = Arrays.toString(name);
Beispiele:
|
Die str Variable enthält die Zeichenfolge:
|
|
Die str Variable enthält die Zeichenfolge:
|
|
Die str Variable enthält die Zeichenfolge:
|
3.Arrays.deepToString()
Wenn Sie jedoch versuchen, ein zweidimensionales Array in eine String- using the Arrays.toString()
Methode (zur Anzeige) umzuwandeln, werden Sie etwas Bekanntes sehen:
[I@37afeb11, I@37afeb21, I@37afeb31]
Dies liegt daran, dass die Zellen eines zweidimensionalen Arrays Verweise auf eindimensionale Arrays speichern. Und wie werden eindimensionale Arrays in einen String umgewandelt? Genau wie Sie oben sehen.
Was kann getan werden? Wie stellen wir ein zweidimensionales Array korrekt dar?
Zu diesem Zweck Arrays
verfügt die Klasse über eine weitere spezielle Methode – deepToString()
. Der Aufruf sieht so aus:
String str = Arrays.deepToString(name);
Dieser Methode können Arrays übergeben werden, die zweidimensional, eindimensional, dreidimensional oder allgemein beliebig dimensioniert sind, und sie zeigt immer die Elemente des Arrays an.
Hinweis: Die Arrays.deepToString()
Methode funktioniert nicht mit eindimensionalen Arrays von Grundelementen (z. B. int[]
).
Beispiele:
|
Die str Variable enthält die Zeichenfolge:
|
|
Die str Variable enthält die Zeichenfolge:
|
|
Die str Variable enthält die Zeichenfolge:
|
4.Arrays.equals()
Wir haben herausgefunden, wie man Arrays auf dem Bildschirm anzeigt, aber wie sieht es mit dem Vergleichen von Arrays aus?
Um Strings zu vergleichen, haben wir equals
und equalsIgnoreCase
-Methoden, aber welche Methoden haben Arrays?
Die gute Nachricht ist, dass Arrays eine equals
Methode haben. Die schlechte Nachricht ist, dass der Inhalt der Arrays nicht verglichen wird. Die equals
Array-Methode macht dasselbe wie der ==
Operator – sie vergleicht Referenzen. Beispiele:
Beispiele:
|
false (Die Referenzen sind nicht gleich) |
|
Die equals Methode arrays vergleicht einfach die Referenzen zweier Arrays. false (Die Referenzen sind nicht gleich) |
Was kann getan werden? Wie vergleichen wir Arrays anhand ihres Inhalts?
Und wieder Arrays
kommt uns das zu Hilfe, oder genauer gesagt, seine Arrays.equals()
Methode. So nennen wir es:
Arrays.equals(name1, name2)
Die Methode gibt zurück true
, wenn die Arrays gleich lang sind und ihre Elemente gleich sind. Andernfalls wird zurückgegeben false
.
Beispiele:
|
Die equals Methode arrays vergleicht einfach die Referenzen zweier Arrays. false (Die Referenzen sind nicht gleich) |
|
true (die Inhalte sind gleich) |
|
false (Die Inhalte der Arrays sind unterschiedlich) |
5.Arrays.deepEquals()
Und wie Sie wahrscheinlich bereits vermutet haben, Arrays.equals
funktioniert die Methode bei zweidimensionalen Arrays nicht richtig: Sie behandelt zweidimensionale Arrays wie ein eindimensionales Array, dessen Elemente Adressen eindimensionaler Arrays sind.
Um mehrdimensionale Arrays ( n = 1, 2, 3,...
) korrekt vergleichen zu können, haben sie die Methode entwickelt Arrays.deepEquals()
. Der Aufruf sieht so aus:
Arrays.deepEquals(name1, name2)
Die Methode gibt zurücktrue
wenn die Arrays gleich lang sind und ihre Elemente gleich sind. Andernfalls wird es zurückgegebenfalse
. Wenn die Elemente innerhalb des Arrays ebenfalls Arrays sind, Arrays.deepEquals()
wird die Methode verwendet, um sie zu vergleichen, und so weiter.
Beispiele:
|
Die equals Methode arrays vergleicht einfach die Referenzen zweier Arrays. false (Die Referenzen sind nicht gleich) |
|
Die Arrays.equals Methode vergleicht und als eindimensionale Arrays, die Referenzen speichern. Sie enthalten unterschiedliche Referenzen. (Die Inhalte der Arrays sind nicht gleich) x1 x2 false |
|
true (die Inhalte sind gleich) |
GO TO FULL VERSION