Hallo, wie können wir die Dokumente finden, in denen alle möglichen Eigenschaften und Funktionen des Array-Objekts aufgeführt sind? Ich meine nicht das Arrays-Objekt, das die einzigen Dokumente sind, die ich finden kann.
Es ist wahrscheinlich auch nützlich zu beachten, dass Sie bei einem mehrdimensionalen Array die entsprechende Dimension erhalten können, indem Sie einfach ein '[0]' an das Array anhängen, das Sie abfragen, bis Sie zur entsprechenden Achse / Tupel / Dimension gelangen.
Dies wird wahrscheinlich besser mit dem folgenden Code erklärt:
publicclassTest{publicstaticvoid main(String[] args){String[][] moo =newString[5][12];System.out.println(moo.length);//Prints the size of the First Dimension in the arraySystem.out.println(moo[0].length);//Prints the size of the Second Dimension in the array}}
es ist öffentliches und endgültiges Eigentum. Es ist endgültig, da Arrays in Java nach Größe unveränderlich sind (aber nach Elementwert veränderbar sind).
Nur um nicht zu picken. Aber ich glaube, Arrays sind KEINE Objekte in Java - sie sind einer der beiden Referenztypen von Variablen. Das andere sind Objekte.
Jabbie
2
@ Jabbie: Wirklich? Haben Sie eine Referenz dafür? Ich frage es nur, weil Sie Objekt o = neuer String [] {"Hallo"} sagen können;
Simon Nickerson
Simon Ich denke, der Grund, warum Anweisung funktioniert, ist, dass sie die reflexiven Klassen für alle primitiven Typen eingeführt haben.
Vielen Dank, dass Sie sich nicht mit technischen Fragen befasst haben, was es sein könnte oder nicht, und einfach eine kurze und präzise Antwort geben. +1 für dich. :)
Dies sollte in der Frage aktualisiert werden, wenn es sich um eine Klarstellung handelt.
Whitecat
5
Die Antwort lautet "Alle". Ein Java-Array wird mit einer festen Anzahl von Element-Slots zugewiesen. Das Attribut "Länge" gibt an, wie viele. Diese Zahl ist für die Lebensdauer des Arrays unveränderlich. Für ein Größenänderungsäquivalent benötigen Sie eine der Klassen java.util.List. Hier können Sie mithilfe der size () -Methode herausfinden, wie viele Elemente verwendet werden.
Es gibt jedoch "In Verwendung" und dann gibt es In Verwendung . In einem Klassenobjektarray können Sie Element-Slots haben, deren Elemente Nullobjekte sind. Obwohl sie im Längenattribut zählen, aber die Definitionen der meisten Personen, werden sie nicht verwendet (YMMV, abhängig von der Anwendung). Es gibt keine integrierte Funktion zum Zurückgeben der Null- / Nicht-Null-Zählungen.
Listenobjekte haben noch eine andere Definition von "In Verwendung". Um eine übermäßige Erstellung / Zerstörung der zugrunde liegenden Speicherstrukturen zu vermeiden, werden diese Klassen normalerweise aufgefüllt. Es wird intern verwendet, aber in der zurückgegebenen size () -Methode nicht gezählt. Wenn Sie versuchen, auf diese Elemente zuzugreifen, ohne die Liste zu erweitern (über die Add-Methoden), wird eine unzulässige Indexausnahme angezeigt.
Für Listen können Sie also "In Verwendung" für nicht null, festgeschriebene Elemente, alle festgeschriebenen Elemente (einschließlich null Elemente) oder alle Elemente einschließlich des derzeit zugewiesenen Erweiterungsbereichs verwenden.
Alle obigen Antworten sind richtig. Es ist wichtig zu beachten, dass Arrays ein Längenattribut haben, jedoch keine Längenmethode. Wann immer Sie in Java Strings und Arrays verwenden, sind die drei Grundmodelle, denen Sie möglicherweise gegenüberstehen:
String s = neuer String ("vidyasagar");
System.out.println (s.length ()); // In diesem Fall verwenden wir nur String. Kein Längenattribut für Strings. Wir müssen die Methode length () verwenden.
int [] s = new int [10]; System.out.println (Länge); // hier verwenden wir das Längenattribut von Arrays.
String [] s = neuer String [10];
System.out.println (Länge); // Obwohl der Datentyp String ist, handelt es sich hier nicht um einen einzelnen String. s ist eine Referenz für ein Array von Strings. Daher verwenden wir das Längenattribut von Arrays, um auszudrücken, wie viele Zeichenfolgen in dieses Array passen können.
Nicht wirklich die Antwort auf Ihre Frage, aber wenn Sie so etwas wie ein Array haben möchten, das wachsen und schrumpfen kann, sollten Sie kein Array in Java verwenden. Am besten verwenden Sie ArrayList oder eine andere List-Implementierung.
Sie können dann size () aufrufen, um die Größe zu ermitteln.
Antworten:
Ja
.length
(eigenschaftsähnlich, keine Methode):quelle
Es ist eigentlich ein letztes Mitglied des Arrays, keine Methode.
quelle
Es ist wahrscheinlich auch nützlich zu beachten, dass Sie bei einem mehrdimensionalen Array die entsprechende Dimension erhalten können, indem Sie einfach ein '[0]' an das Array anhängen, das Sie abfragen, bis Sie zur entsprechenden Achse / Tupel / Dimension gelangen.
Dies wird wahrscheinlich besser mit dem folgenden Code erklärt:
Welches erzeugt die Ausgabe:
quelle
array.length final property
es ist öffentliches und endgültiges Eigentum. Es ist endgültig, da Arrays in Java nach Größe unveränderlich sind (aber nach Elementwert veränderbar sind).
quelle
Arrays sind Objekte und haben ein Längenfeld.
String [] haha = {"olle", "bulle"};
haha.length wäre 2
quelle
In Java gibt es ein
length
Feld, das Sie für jedes Array verwenden können, um die Größe zu ermitteln:quelle
Wenn Sie möchten, dass eine Funktion dies tut
Dies kann nützlich sein, wenn Sie nicht wissen, welchen Array-Typ Sie haben, z. B. int [], byte [] oder Object [].
quelle
Es gibt einen Unterschied zwischen Länge
String
undarray
zu verdeutlichen:quelle
Die Antwort lautet "Alle". Ein Java-Array wird mit einer festen Anzahl von Element-Slots zugewiesen. Das Attribut "Länge" gibt an, wie viele. Diese Zahl ist für die Lebensdauer des Arrays unveränderlich. Für ein Größenänderungsäquivalent benötigen Sie eine der Klassen java.util.List. Hier können Sie mithilfe der size () -Methode herausfinden, wie viele Elemente verwendet werden.
Es gibt jedoch "In Verwendung" und dann gibt es In Verwendung . In einem Klassenobjektarray können Sie Element-Slots haben, deren Elemente Nullobjekte sind. Obwohl sie im Längenattribut zählen, aber die Definitionen der meisten Personen, werden sie nicht verwendet (YMMV, abhängig von der Anwendung). Es gibt keine integrierte Funktion zum Zurückgeben der Null- / Nicht-Null-Zählungen.
Listenobjekte haben noch eine andere Definition von "In Verwendung". Um eine übermäßige Erstellung / Zerstörung der zugrunde liegenden Speicherstrukturen zu vermeiden, werden diese Klassen normalerweise aufgefüllt. Es wird intern verwendet, aber in der zurückgegebenen size () -Methode nicht gezählt. Wenn Sie versuchen, auf diese Elemente zuzugreifen, ohne die Liste zu erweitern (über die Add-Methoden), wird eine unzulässige Indexausnahme angezeigt.
Für Listen können Sie also "In Verwendung" für nicht null, festgeschriebene Elemente, alle festgeschriebenen Elemente (einschließlich null Elemente) oder alle Elemente einschließlich des derzeit zugewiesenen Erweiterungsbereichs verwenden.
quelle
Alle obigen Antworten sind richtig. Es ist wichtig zu beachten, dass Arrays ein Längenattribut haben, jedoch keine Längenmethode. Wann immer Sie in Java Strings und Arrays verwenden, sind die drei Grundmodelle, denen Sie möglicherweise gegenüberstehen:
System.out.println (s.length ()); // In diesem Fall verwenden wir nur String. Kein Längenattribut für Strings. Wir müssen die Methode length () verwenden.
System.out.println (Länge); // Obwohl der Datentyp String ist, handelt es sich hier nicht um einen einzelnen String. s ist eine Referenz für ein Array von Strings. Daher verwenden wir das Längenattribut von Arrays, um auszudrücken, wie viele Zeichenfolgen in dieses Array passen können.
quelle
Nicht wirklich die Antwort auf Ihre Frage, aber wenn Sie so etwas wie ein Array haben möchten, das wachsen und schrumpfen kann, sollten Sie kein Array in Java verwenden. Am besten verwenden Sie ArrayList oder eine andere List-Implementierung.
Sie können dann size () aufrufen, um die Größe zu ermitteln.
quelle