Heim  >  Artikel  >  Java  >  Lösung für die Java-Datenindex-Ausnahme (IndexOutOfBoundsException)

Lösung für die Java-Datenindex-Ausnahme (IndexOutOfBoundsException)

王林
王林Original
2023-08-18 22:48:336773Durchsuche

Lösung für die Java-Datenindex-Ausnahme (IndexOutOfBoundsException)

Lösung für die Java-Datenindex-Ausnahme (IndexOutOfBoundsException)

Einführung:
Wenn in der Java-Programmierung auf ein nicht vorhandenes Array-Element zugegriffen wird oder der Index der Sammlung außerhalb des gültigen Bereichs liegt, wird eine IndexOutOfBoundsException-Ausnahme ausgelöst. Dies ist ein häufiger Fehler, dem viele Anfänger oft begegnen. In diesem Artikel wird erläutert, wie Sie die IndexOutOfBoundsException-Ausnahme mit einigen einfachen Lösungen vermeiden und lösen können.

  1. Falsche Indexberechnung
    Zuerst wollen wir die Genauigkeit der Indexberechnung überprüfen. In vielen Fällen werden IndexOutOfBoundsException-Ausnahmen durch Indexberechnungsfehler verursacht.

Beispielcode 1:

int[] array = new int[5];
int index = 5;
array[index] = 10;  // 此处抛出IndexOutOfBoundsException异常

Im obigen Code haben wir ein ganzzahliges Array der Länge 5 erstellt, aber beim Versuch, dem Element mit Index 5 einen Wert zuzuweisen, wird eine IndexOutOfBoundsException-Ausnahme ausgelöst. Dies liegt daran, dass der Index eines Arrays beginnend bei 0 berechnet wird, sodass der gültige Indexbereich des Arrays zwischen 0 und 4 liegen sollte. Zur Lösung dieses Problems ist lediglich die korrekte Berechnung des Index erforderlich.

Beispielcode 2:

int[] array = new int[5];
int index = 4;
array[index] = 10;  // 正确的索引赋值
  1. Nicht leeres Urteil
    Wenn Sie eine Sammlung oder eine dynamisch wachsende Datenstruktur verwenden, müssen Sie zunächst beurteilen, ob sie null ist oder ob genügend Elemente hinzugefügt wurden. Andernfalls wird möglicherweise eine IndexOutOfBoundsException aufgrund eines Zugriffs außerhalb des zulässigen Bereichs ausgelöst.

Beispielcode 3:

List<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);
int index = 2;
int value = list.get(index);  // 此处抛出IndexOutOfBoundsException异常

Im obigen Code haben wir eine leere ArrayList erstellt und versucht, den Wert des Elements mit Index 2 abzurufen, aber da es nur zwei Elemente gibt, löst der Zugriff auf das Element mit Index 2 An aus Die IndexOutOfBoundsException-Ausnahme tritt auf. Um dieses Problem zu lösen, können Sie die Größe oder Länge der Sammlung bestimmen, bevor Sie darauf zugreifen.

Beispielcode 4:

List<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);
int index = 1;
if (index < list.size()) {
    int value = list.get(index);  // 正确的访问
}
  1. Schleifensteuerung
    Bei Verwendung einer Schleife müssen Sie sicherstellen, dass der Index den gültigen Bereich des Arrays oder der Sammlung nicht überschreitet. Normalerweise gibt es zwei Möglichkeiten, IndexOutOfBoundsException zu vermeiden:

Methode 1: for-Schleifensteuerung:

for (int i = 0; i < array.length; i++) {
    // 访问数组元素
}

Wenn Sie eine for-Schleife verwenden, steuern Sie die Anzahl der Schleifen, indem Sie die Länge des Arrays oder der Sammlung verwenden, um sicherzustellen, dass sie die nicht überschreitet Bereich des Indexes.

Methode 2: Foreach-Schleifensteuerung:

for (int value : array) {
    // 访问数组元素
}

Wenn Sie eine Foreach-Schleife verwenden, müssen Sie sich nicht um den Bereich des Index kümmern, da die darunter liegende Ebene bereits relevante Entscheidungen getroffen hat, sodass es keine IndexOutOfBoundsException-Ausnahme gibt.

Zusammenfassend lässt sich sagen, dass wir durch korrekte Indexberechnung, Nicht-Null-Beurteilung und Schleifensteuerung die IndexOutOfBoundsException-Ausnahme in Java vermeiden und lösen können. Diese einfachen Lösungen können die Robustheit und Lesbarkeit unseres Codes verbessern und uns auch dabei helfen, Fehler besser zu lokalisieren und zu beheben. Für Java-Programmentwickler ist die Beherrschung dieser Fähigkeiten sehr wichtig, um die Qualität und Effizienz des Codes zu verbessern.

Referenzen:

  • https://docs.oracle.com/en/java/javase/14/names-indexes-for-td-tables.html
  • https://www.geeksforgeeks.org/indexoutofboundsexception - in-java-with-examples/

Das obige ist der detaillierte Inhalt vonLösung für die Java-Datenindex-Ausnahme (IndexOutOfBoundsException). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn