Der Unterschied zwischen Größe und Länge in Java

Mohammad Irfan 12 Oktober 2023
  1. Die length-Eigenschaft von Arrays in Java
  2. Beispiel für .length in einem Array in Java
  3. Beispiel für die Methode size() in einem Array in Java
  4. Ermitteln der Länge mit der Methode length() in Java
  5. Java Collections size() Methode
  6. Der Unterschied zwischen Größe und Länge in Java
Der Unterschied zwischen Größe und Länge in Java

Dieses Tutorial stellt den Unterschied zwischen Größe und Länge in Java vor. Wir haben auch einige Beispielcodes aufgelistet, um Ihnen das Verständnis des Themas zu erleichtern.

Java hat eine Methode size() und eine Eigenschaft length. Ein Anfänger mag denken, dass diese austauschbar sind und die gleiche Aufgabe erfüllen, weil sie in etwa gleich klingen. In Java sind Größe und Länge zwei verschiedene Dinge. Hier lernen wir die Unterschiede zwischen den beiden kennen.

Die length-Eigenschaft von Arrays in Java

Arrays speichern eine feste Anzahl von Daten desselben Typs in geordneter Weise. Alle Arrays in Java haben ein Längenfeld, das den Platz speichert, der den Elementen dieses Arrays zugewiesen ist. Es ist ein konstanter Wert, der verwendet wird, um die maximale Kapazität des Arrays zu ermitteln.

  • Denken Sie daran, dass dieses Feld nicht die Anzahl der im Array vorhandenen Elemente angibt, sondern die maximale Anzahl von Elementen, die gespeichert werden können (unabhängig davon, ob Elemente vorhanden sind oder nicht).

Beispiel für .length in einem Array in Java

Im folgenden Code initialisieren wir zunächst ein Array der Länge 7. Das Längenfeld dieses Arrays zeigt 7, obwohl wir keine Elemente hinzugefügt haben. Diese 7 bezeichnet nur die maximale Kapazität.

public class Main {
  public static void main(String[] args) {
    int[] intArr = new int[7];
    System.out.print("Length of the Array is: " + intArr.length);
  }
}

Ausgabe:

Length of the Array is: 7

Nun fügen wir dem Array 3 Elemente mit ihrem Index hinzu und geben dann das Längenfeld aus. Es zeigt immer noch 7.

public class Main {
  public static void main(String[] args) {
    int[] intArr = new int[7];
    intArr[0] = 20;
    intArr[1] = 25;
    intArr[2] = 30;
    System.out.print("Length of the Array is: " + intArr.length);
  }
}

Ausgabe:

Length of the Array is: 7

Das Längenfeld ist konstant, da die Größe von Arrays festgelegt ist. Wir müssen die maximale Anzahl von Elementen definieren, die wir während der Initialisierung im Array speichern (die Kapazität des Arrays), und wir können diese Grenze nicht überschreiten.

Beispiel für die Methode size() in einem Array in Java

Es gibt keine Methode size() für Arrays; es wird einen Kompilierungsfehler zurückgeben. Siehe das Beispiel unten.

public class SimpleTesting {
  public static void main(String[] args) {
    int[] intArr = new int[7];
    System.out.print("Length of the Array is: " + intArr.size());
  }
}

Ausgabe:

Exception in thread "main" java.lang.Error: Unresolved compilation problem: 
	Cannot invoke size() on the array type int[]

	at SimpleTesting.main(SimpleTesting.java:7)

Ermitteln der Länge mit der Methode length() in Java

Java-Strings sind einfach eine geordnete Sammlung von Zeichen und haben im Gegensatz zu Arrays eine Methode length() und kein Feld length. Diese Methode gibt die Anzahl der Zeichen zurück, die in der Zeichenkette vorhanden sind.

Siehe das Beispiel unten.

public class Main {
  public static void main(String[] args) {
    String str1 = "This is a string";
    String str2 = "Another String";
    System.out.println("The String is: " + str1);
    System.out.println("The length of the string is: " + str1.length());
    System.out.println("\nThe String is: " + str2);
    System.out.println("The length of the string is: " + str2.length());
  }
}

Ausgabe:

The String is: This is a string
The length of the string is: 16

The String is: Another String
The length of the string is: 14

Beachten Sie, dass wir die Eigenschaft length nicht für Strings verwenden können und die Methode length() auf Arrays nicht anwendbar ist. Der folgende Code zeigt die Fehler, wenn wir sie missbrauchen.

public class SimpleTesting {
  public static void main(String[] args) {
    String str1 = "This is a string";
    System.out.println("The length of the string is: " + str1.length);
  }
}

Ausgabe:

Exception in thread "main" java.lang.Error: Unresolved compilation problem: 
	length cannot be resolved or is not a field

	at SimpleTesting.main(SimpleTesting.java:7)

Ebenso können wir die String-Methode length() nicht für Arrays verwenden.

public class SimpleTesting {
  public static void main(String[] args) {
    int[] intArray = {1, 2, 3};
    System.out.println("The length of the string is: " + intArray.length());
  }
}

Ausgabe:

Exception in thread "main" java.lang.Error: Unresolved compilation problem: 
	Cannot invoke length() on the array type int[]

	at SimpleTesting.main(SimpleTesting.java:7)

Java Collections size() Methode

size() ist eine Methode der java.util.Collections-Klasse. Die Klasse Collections wird von vielen verschiedenen Sammlungen (oder Datenstrukturen) wie ArrayList, LinkedList, HashSet und HashMap verwendet.

Die Methode size() gibt die Anzahl der aktuell in der Collection vorhandenen Elemente zurück. Im Gegensatz zur Eigenschaft length von Arrays ist der von der Methode size() zurückgegebene Wert nicht konstant und ändert sich entsprechend der Anzahl der Elemente.

Alle Collections des Collection Framework in Java werden dynamisch zugewiesen, sodass die Anzahl der Elemente variieren kann. Die Methode size() wird verwendet, um die Anzahl der Elemente zu verfolgen.

Im folgenden Code ist klar, dass die Methode size() 0 zurückgibt, wenn wir eine neue ArrayList ohne Elemente erstellen.

import java.util.ArrayList;
import java.util.List;
public class Main {
  public static void main(String[] args) {
    List<Integer> list = new ArrayList<Integer>();
    System.out.println("The ArrayList is: " + list);
    System.out.println("The size of the ArrayList is: " + list.size());
  }
}

Ausgabe:

The ArrayList is: []
The size of the ArrayList is: 0

Dieser Wert ändert sich jedoch, wenn wir Elemente hinzufügen oder entfernen. Nachdem wir drei Elemente hinzugefügt haben, erhöht sich die Größe auf 3. Als nächstes haben wir zwei Elemente entfernt und die Größe der Liste wird 1.

import java.util.ArrayList;
import java.util.List;
public class Main {
  public static void main(String[] args) {
    List<Integer> list = new ArrayList<Integer>();
    System.out.println("The ArrayList is: " + list);
    System.out.println("The size of the ArrayList is: " + list.size());
    list.add(20);
    list.add(40);
    list.add(60);
    System.out.println("\nAfter adding three new elements:");
    System.out.println("The ArrayList is: " + list);
    System.out.println("The size of the ArrayList is: " + list.size());
    list.remove(0);
    list.remove(1);
    System.out.println("\nAfter removing two elements:");
    System.out.println("The ArrayList is: " + list);
    System.out.println("The size of the ArrayList is: " + list.size());
  }
}

Ausgabe:

The ArrayList is: []
The size of the ArrayList is: 0

After adding three new elements:
The ArrayList is: [20, 40, 60]
The size of the ArrayList is: 3

After removing two elements:
The ArrayList is: [40]
The size of the ArrayList is: 1

Der Unterschied zwischen Größe und Länge in Java

Obwohl Größe und Länge manchmal im selben Kontext verwendet werden können, haben sie in Java völlig unterschiedliche Bedeutungen.

Das Feld length von Arrays wird verwendet, um die maximale Kapazität des Arrays anzugeben. Mit maximaler Kapazität meinen wir die maximale Anzahl von Elementen, die darin gespeichert werden können. Dieses Feld berücksichtigt nicht die Anzahl der im Array vorhandenen Elemente und bleibt konstant.

Die Methode length() von Strings wird verwendet, um die Anzahl der Zeichen anzugeben, die in den Strings vorhanden sind. Die Methode size() des Collections Framework wird verwendet, um die Anzahl der Elemente anzuzeigen, die derzeit in dieser Sammlung vorhanden sind. Collections haben eine dynamische Größe, daher kann der Rückgabewert von size() variieren.