Ich habe ein Array wie folgt deklariert:
int[] arr = new int[10];
Dann habe ich dem Array folgende Werte zugewiesen:
arr[0] = 1;
arr[1] = 2;
arr[2] = 3;
arr[3] = 4;
Dann habe ich eine ganzzahlige Variable deklariert und initialisiert:
int arrayLength = arr.length;
Dies ist nützlich, um die tatsächliche Größe zu ermitteln. Gibt es jedoch eine Methode zum Ermitteln der logischen Größe des Arrays?
Zuallererst
length
ist eine Eigenschaft, also wäre esarr.length
stattarr.length()
.Und es wird 10, die deklarierte Größe, zurückgegeben. Die Elemente, die Sie nicht explizit deklarieren, werden mit 0 initialisiert.
quelle
Um die Länge eines Arrays zu ermitteln
A
, sollten Sie dielength
Eigenschaft verwenden. Es wirdA.length
nichtA.length()
hauptsächlich für die Größe von Zeichenfolgen-bezogenen Objekten verwendet.Die Eigenschaft length zeigt während der Initialisierung immer den gesamten dem Array zugewiesenen Speicherplatz an.
Wenn Sie jemals eines dieser Probleme haben, können Sie es einfach ausführen. Viel Spaß beim Programmieren!
quelle
Arrays sind statische Speicherzuordnungen. Wenn Sie also ein Array von Ganzzahlen initialisieren:
Die Länge beträgt immer 15, egal wie viele Indizes gefüllt sind.
Und eine andere Sache, wenn Sie ein Array von ganzen Zahlen initialisieren, werden alle Indizes mit "0" gefüllt.
quelle
In Java sind Ihre "tatsächliche" und "logische" Größe gleich. Die Laufzeit füllt alle Array-Slots bei der Zuweisung mit Standardwerten. Ihr
a
enthält also 10.quelle
In diesem Fall gibt arr.length 10 zurück, die Größe des von Ihnen zugewiesenen Arrays. Die logische Größe trifft hier nicht wirklich zu, da dies ein Array mit fester Länge ist.
Wenn Sie das Array initialisieren:
Java erstellt ein Array mit 10 Elementen und initialisiert alle diese auf 0. Einzelheiten zu den Anfangswerten für diesen und andere primitive Typen finden Sie in der Java-Sprachspezifikation .
quelle
arr
ist einint
Typarray mit Größe10
. Es ist eine Reihe von10
Elementen. Wenn wir ein Array nicht standardmäßig initialisieren, enthält das Array-Element den Standardwert. Im Falle eines int-Arrays ist der Standardwert0
.Länge ist eine Eigenschaft, die für ein Array gilt.
hier
arr.length
wird geben10
.quelle
`
Also haben wir hier ein Array mit einem Speicherplatz von 3 erstellt ... so sieht es tatsächlich aus
0. 1. 2. ...........> Index 2 4 5 ...........> Nummer
Wie Sie sehen, beträgt die Größe dieses Arrays 3, aber der Index des Arrays beträgt nur bis zu 2, da jedes Array mit dem 0. Index beginnt.
Die Ausgabe der zweiten Anweisung soll 3 sein, da die Länge des Arrays 3 beträgt. Bitte verwechseln Sie nicht den Indexwert und die Länge des Arrays.
Prost!
quelle
quelle
Es enthält die tatsächliche Größe des Arrays, da Sie das Array so initialisiert haben, als Sie es deklariert haben. Java hat kein Konzept für die "logische" Größe eines Arrays. Für ihn ist der Standardwert 0 genauso logisch wie die manuell festgelegten Werte.
quelle
Es enthält die zugewiesene Größe 10. Die verbleibenden Indizes enthalten den Standardwert 0.
quelle
Wenn Sie die logische Größe des Arrays möchten, können Sie alle Werte im Array durchlaufen und gegen Null prüfen. Erhöhen Sie den Wert, wenn er nicht Null ist, und das wäre die logische Größe. Da die Arraygröße fest ist, haben Sie keine eingebaute Methode. Vielleicht sollten Sie sich Sammlungen ansehen.
quelle
Es sollte sein:
Klammern sollten vermieden werden.
quelle
Java-Arrays haben tatsächlich eine feste Größe, und die anderen Antworten erklären, dass .length nicht wirklich das tut, was Sie erwarten. Ich möchte nur hinzufügen, dass angesichts Ihrer Frage eine ArrayList verwendet werden soll, dh ein Array, das wachsen und schrumpfen kann:
https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html
Hier zeigt Ihnen die .size () -Methode die Anzahl der Elemente in Ihrer Liste an, und Sie können diese erweitern, wenn Sie Dinge hinzufügen.
quelle
Wenn Sie mit "logische Größe" den Index des Arrays meinen, dann ist einfach int arrayLength = arr.length-1; Da der Array-Index mit "0" beginnt, ist der logische oder "Array-Index" immer um "eins" kleiner als die tatsächliche Größe.
quelle
Arrays wird zur Kompilierungszeit in Java Speicher zugewiesen. Sie sind also statisch. Die nicht explizit festgelegten oder geänderten Elemente werden mit den Standardwerten festgelegt. Sie könnten Code wie diesen verwenden, obwohl dies nicht empfohlen wird, da er keine Standardwerte zählt. Selbst wenn Sie diese explizit auf diese Weise initialisieren, kann dies zu Fehlern auf der ganzen Linie führen. Wie bereits erwähnt, muss bei der Suche nach der tatsächlichen Größe ".length" anstelle von ".length ()" verwendet werden.
quelle