Spiegelt die Länge eines primitiven Arrays die zugewiesene Größe oder die Anzahl der zugewiesenen Elemente wider?
Lesezeit: 3 Minuten
Kiran Bhat
Ich habe ein Array wie unten gezeigt 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 Integer-Variable deklariert und initialisiert:
int arrayLength = arr.length;
Wille arrayLength enthalten 10, die zugewiesene Größe des Arrays oder 4, die Anzahl der explizit zugewiesenen Elemente?
Diese Frage hat 1 Million Aufrufe aufgrund des äußerst allgemeinen Titels, der den Inhalt der Frage bis 2022 nicht gut widerspiegelt, aber ich verstehe nicht, warum OP es nicht einfach getan hat Führen Sie den Code aus um zu sehen, was die Ausgabe war, es sei denn, ich verstehe die Frage falsch.
– ggorlen
28. Dezember 2022 um 23:29 Uhr
Kai
Es enthält die zugewiesene Größe, 10. Die nicht zugewiesenen Indizes enthalten den Standardwert, der ist 0 für int.
Ja, Arrays sind statische Speicherzuweisungen.
– Ramon Saraiva
6. Januar 2012 um 9:38 Uhr
Kannst du das Javadoc zeigen? Ich weiß nicht, wo diese Eigenschaft “Länge” ist.
Erstens, length ist eine Eigenschaft, so wäre es arr.length anstatt arr.length().
Und es wird 10 zurückgegeben, die deklarierte Größe. Die nicht explizit deklarierten Elemente werden mit 0 initialisiert.
length() kann für den Arraytyp long nicht aufgerufen werden[]Java(67108980)
– Alessandro Ornano
19. Februar 2019 um 18:23 Uhr
@AlessandroOrnano ja, genau das würde laut der Antwort passieren.
– ggorlen
28. Dezember 2022 um 23:30 Uhr
Ravi Pandey
Um die Länge eines Arrays zu finden A Sie sollten die verwenden length Eigentum. Es ist wie A.lengthverwende nicht A.length() Es wird hauptsächlich für die Größe von String-bezogenen Objekten verwendet.
Die length-Eigenschaft zeigt während der Initialisierung immer den gesamten zugewiesenen Speicherplatz für das Array an.
Wenn Sie jemals eines dieser Probleme haben, können Sie es einfach ausführen. Viel Spaß beim Programmieren!
Arrays sind statische Speicherzuweisungen. Wenn Sie also ein Array von Ganzzahlen initialisieren:
int[] intArray = new int[15];
Die Länge wird stets 15, egal wie viele Indizes gefüllt sind.
Und noch etwas, wenn Sie ein Array von Ganzzahlen initialisieren, alle Indizes werden mit “0” gefüllt.
In diesem Fall gibt arr.length 10 zurück, die Größe des von Ihnen zugewiesenen Arrays. Die logische Größe gilt hier nicht wirklich, da dies ein Array mit fester Länge ist.
Wenn Sie das Array initialisieren:
int[] arr = new int[10];
Java erstellt ein Array mit 10 Elementen und initialisiert alle auf 0. Siehe die Java-Sprachspez Einzelheiten zu Anfangswerten für diesen und andere primitive Typen.
Dolch
In Java sind Ihre “tatsächliche” und “logische” Größe gleich. Die Laufzeit füllt alle Array-Slots bei der Zuweisung mit Standardwerten. Also dein a enthält 10.
Patrick Hagh
int[] arr = new int[10];
arr ist ein int Geben Sie ein Array ein, das eine Größe hat 10. Es ist eine Reihe von 10 Elemente. Wenn wir ein Array nicht standardmäßig initialisieren, enthalten Array-Elemente einen Standardwert. Im Fall von int-Array ist der Standardwert 0.
length ist eine Eigenschaft, die für ein Array gilt.
Hier arr.length wird geben 10.
14449700cookie-checkSpiegelt die Länge eines primitiven Arrays die zugewiesene Größe oder die Anzahl der zugewiesenen Elemente wider?yes
Diese Frage hat 1 Million Aufrufe aufgrund des äußerst allgemeinen Titels, der den Inhalt der Frage bis 2022 nicht gut widerspiegelt, aber ich verstehe nicht, warum OP es nicht einfach getan hat Führen Sie den Code aus um zu sehen, was die Ausgabe war, es sei denn, ich verstehe die Frage falsch.
– ggorlen
28. Dezember 2022 um 23:29 Uhr