Spiegelt die Länge eines primitiven Arrays die zugewiesene Größe oder die Anzahl der zugewiesenen Elemente wider?

Lesezeit: 3 Minuten

Benutzeravatar von Kiran Bhat
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

Kais Benutzeravatar
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.

    – Philipp Rego

    13. Februar 2018 um 18:44 Uhr

  • @PhilipRego Es ist in der Sprachspezifikation docs.oracle.com/javase/specs/jls/se8/html/jls-10.html#jls-10.3

    – Thorben

    5. April 2019 um 7:12 Uhr

Benutzeravatar von Costi Ciudatu
Costi Ciudatu

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


Benutzeravatar von Ravi Pandey
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.

Geben Sie hier die Bildbeschreibung ein

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.

Benutzeravatar von Dirk
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.

Benutzeravatar von Patrick Haugh
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.

1444970cookie-checkSpiegelt die Länge eines primitiven Arrays die zugewiesene Größe oder die Anzahl der zugewiesenen Elemente wider?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy