IndexOutOfBoundsException beim hinzufügen eines Elements zu einer Liste

SyntaxTalksToMe

Bekanntes Mitglied
Guten Abend,

Ich habe eine Frage zur add Methode einer ObservableList. Ich habe mir natürlich die offizielle Dokumentation angeschaut und bin mir daher auch sicher, dass ich es richtig verstanden habe und theoretisch so geschehen müsste wie ich es will :)

Ich habe den Code stark verkürzt und nur auf die Teile heruntergebrochen, wo der Fehler entsteht:

Es beginnt, dass ich ein Directory nach Files durchsuche. Das funktioniert so wie gewollt und es ist auch nichts null oder so.

Code:
 ObservableList<File> fileList = FXCollections.observableArrayList();

fileList.add(beliebigeZahl, f);   <-----   f = File aus der Foreach Schleife

Es ist gewünscht dass das Element f an Index "beliebigeZahl" in der ObservableListe platziert wird,

Jetzt bringt er mir die Exception:

Caused by: java.lang.IndexOutOfBoundsException: Index: 11, Size: 0

Wo liegt da der Fehler? Ich füge ja der Liste etwas hinzu. Warum eine IndexOutOfBounds?

Offenbar hat er ein Problem wenn die Liste in dem Sinne keine Elemente beinhaltet und dann plötzlich eine auf Index 11 setzen soll. Würde es helfen, die liste vorher mit irgendetwas zu füllen, quasi als Platzhalter, damit die Indizies nicht null sind?
 

mrBrown

Super-Moderator
Mitarbeiter
Es passiert genau das, was in der Doku angegeben ist - wenn der angegebene Index größer ist, als die Listengröße, fliegt diese Exception.


Warum soll denn in einer leeren Liste etwas an Index 11 gesetzt werden? Das klingt nach einem Anwendungsfall, für den eine Liste eher nicht das ideale ist...
 

SyntaxTalksToMe

Bekanntes Mitglied
Mein Ziel war es, dass der Nutzer ein Directory auswählt. In dem Directory befinden sich Images, die in einer Liste gespeichert werden sollen.
Die Besonderheit ist aber, dass die Bilder in einer speziellen Reihenfolge in die Liste geladen werden. Um das zu bewerkstelligen, sollen die Bilder nummeriert sein. Das sind natürlich Strings. Diese Strings werden aber an den entsprechenden Stellen in Integer umgewandelt. Die Dateinamen liefern also quasi bereits den gewünschten Platz in der Liste. Kurz gesagt: Ich möchte Files entsprechend ihrer Titel sortieren, damit diese in der von mir gewünschten Reihenfolge in die Liste gespeichert werden.
Dies war gewünscht um mit gewissen anderen Dingen innerhalb des Programmes zu interagieren.


Während ich diese Zeilen geschrieben habe, ist mir eine gute Lösung vor Augen erschienen und lässt meine Idee von oben ziemlich labil erscheinen. Die Lösungen für Probleme fliegen mir immer zu, wenn ich das Problem niederschreibe.

Trotzdem danke für deine Antwort.
 
X

Xyz1

Gast
Das hat mit ObservableList nix zu tun, das Verhalten ist auch bei einer "normalen" Liste so.

Intention ist eben, immer zu gewährleisten, dass die Liste "lückenlos" ist.

Aber das, was du möchtest kann relativ leicht mit einer HashMap nachgebildet werden... Code erwünscht?
 

SyntaxTalksToMe

Bekanntes Mitglied
Ich sag mal ja :) Ich weiß was ein Hash ist. Aber nicht was eine Hashmap ist. Klingt jedenfalls interessant.

ich könnte mich jedes mal selbst Ohrfeigen. Das ist ein Problem bei mir. ich denke oft zu kompliziert, dabei kann ich es manchmal viel einfacher haben.
 
X

Xyz1

Gast
Ok los geht'S:
Java:
import java.util.HashMap;
import java.util.Observable;
import java.util.Observer;
import java.util.Random;

/**
 * Consider not using Observable cause of its depraction.
 * @author 
 *
 * @param <T>
 */
@SuppressWarnings("deprecation")
public class MyList<T> extends Observable {
	private HashMap<Integer, T> map = new HashMap<>();

	public void add(T t, int i) {
		if (map.containsKey(t)) {
			throw new IllegalArgumentException(i + " already added.");
		}
		map.put(i, t);
		this.setChanged();
		this.notifyObservers(t);
	}

	public static void main(String[] args) {
		MyList<String> myList = new MyList<>();
		myList.addObserver(new Observer() {
			@Override
			public void update(Observable o, Object arg) {
				System.out.println(arg + " was added.");
			}
		});

		Random rand = new Random();
		myList.add("one", rand.nextInt(10));
		myList.add("two", rand.nextInt(10));
		myList.add("three", rand.nextInt(10));
	}
}

Im Idealfall werden drei Zeilen ausgegeben.
 

SyntaxTalksToMe

Bekanntes Mitglied
Habs getestet und mit eingebaut. Funktioniert wunderbar. Genau so was hatte ich gesucht. Ich wollte es sortieren, aber mir hatte ein Wert gefehlt :) Daher wurde es umständlich.
Vielen Dank!
 

Neumi5694

Top Contributor
Wenn du jetzt noch eine TreeMap verwendest, dann liegen deine Einträge von Anfang an in der richtigen Reihenfolge vor. Den Zeitverlust kannst du ignorieren, es geht bei weitem mehr Zeit drauf, die Dateiinformationen (Name) auszulesen.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
N IndexOutOfBoundsException: Source does not fit in dest beim Kopieren von ArrayList in Vector Java Basics - Anfänger-Themen 4
D Unerklärliche IndexOutOfBoundsException Java Basics - Anfänger-Themen 5
V Compiler-Fehler Warum eine IndexOutOfBoundsException? Java Basics - Anfänger-Themen 3
K Dateien lesen | IndexOutOfBoundsException Java Basics - Anfänger-Themen 2
O java.lang.IndexOutOfBoundsException JTable autoSort Java Basics - Anfänger-Themen 5
S Methoden Bei Liste als Rückgabewert: IndexOutOfBoundsException Java Basics - Anfänger-Themen 1
H java.lang.IndexOutOfBoundsException bei verschachtelter ArrayList Java Basics - Anfänger-Themen 9
P Problem mit IndexOutOfBoundsException Java Basics - Anfänger-Themen 11
K Compiler-Fehler IndexOutOfBoundsException bei ArrayList Java Basics - Anfänger-Themen 2
R IndexOutOfBoundsException bei ArrayList Java Basics - Anfänger-Themen 2
K Fehlermeldung: java.lang.IndexOutOfBoundsException: Index: 1, Size: 1 Java Basics - Anfänger-Themen 4
M ArrayList, String Array und IndexOutOfBoundsException Java Basics - Anfänger-Themen 2
S IndexOutofBoundsException bei linkedlist Java Basics - Anfänger-Themen 5
M java.lang.IndexOutOfBoundsException weiß nicht warum Java Basics - Anfänger-Themen 8
R IndexOutOfBoundsException bei Listen Java Basics - Anfänger-Themen 7
Student Transponieren von 2 Arrays - IndexOutOfBoundsException Java Basics - Anfänger-Themen 15
G Wo ist mein Fehler (IndexOutOfBoundsException)? Java Basics - Anfänger-Themen 3
P Problems with IndexOutOfBoundsException Java Basics - Anfänger-Themen 2
Juelin jedit Fehler beim starten Java Basics - Anfänger-Themen 2
Kerstininer Vererbung Hilfe beim lernen von Objektorientierung für eine Klausur Java Basics - Anfänger-Themen 10
A Hilfe beim Lesen von Pfaden und Systemvariablen Java Basics - Anfänger-Themen 3
M Ausgabe beim Overloading Java Basics - Anfänger-Themen 3
W Null-Pointer Exception beim Programmstart Java Basics - Anfänger-Themen 8
H Nutzt Eclipse alle CPU-Threads beim Ausführen von Java-Programmen? Java Basics - Anfänger-Themen 4
M Nullpointer beim befüllen meiner Liste im Object Java Basics - Anfänger-Themen 3
J Beim Start des Programms zB. eine Linie in JPanel ausgeben Java Basics - Anfänger-Themen 4
I Projekte in IDE untereinander sharen / Probleme beim Build Java Basics - Anfänger-Themen 8
paulen1 Best Practice "Unchecked Assignment" Warnung beim erstellen eines 2D Arrays of Arraylists Java Basics - Anfänger-Themen 2
T Probleme beim Import eines Git-Repos Java Basics - Anfänger-Themen 2
C GLOOP Problem beim Erstellen der Kamera Java Basics - Anfänger-Themen 9
N Array beim erstellen mit Werten füllen Java Basics - Anfänger-Themen 6
T DamagedFontException beim drucken Java Basics - Anfänger-Themen 3
Z SNAKE Schlange beim Aufheben von Essen verlängern Java Basics - Anfänger-Themen 4
Bugs Bunny Fehlerhafte Berechnung beim erneuten Durchlaufen der Schleife Java Basics - Anfänger-Themen 5
stormyark Fehler beim überschreiben einer Variable Java Basics - Anfänger-Themen 1
T String Array Fehler beim Index Java Basics - Anfänger-Themen 3
Fiedelbambu Prüfen von Komma stelle beim Taschenrechner Java Basics - Anfänger-Themen 5
B Objekte verschwinden beim Übersetzen Java Basics - Anfänger-Themen 5
L Beim Java Programmstart, mehrere Parameter über die Kommandozeile übergeben Java Basics - Anfänger-Themen 9
sserio Problem beim Anzeigen Java Basics - Anfänger-Themen 5
X Hilfe beim Übertragen in eine For-Schleife Java Basics - Anfänger-Themen 1
S Fehler beim Programm Java Basics - Anfänger-Themen 2
G Main Methode wird beim ersten Aufruf nicht richtig ausgeführt Java Basics - Anfänger-Themen 1
M String beim einlesen formatieren Java Basics - Anfänger-Themen 12
N Exception beim Verwenden von Arraylist? Java Basics - Anfänger-Themen 10
I InputStream beim zweiten Mal fehlerhaft Java Basics - Anfänger-Themen 10
C Fehler beim erstellen eines Objektes Java Basics - Anfänger-Themen 3
C Brauche Hilfe beim Schreiben eines Programmes :/ Java Basics - Anfänger-Themen 1
cmn489 Werte beim Funktionsaufruf in ein Feld übertragen(falls dieses leer ist) Java Basics - Anfänger-Themen 1
I Output BigDecimal anstatt double / Problem beim Rechnen Java Basics - Anfänger-Themen 16
S Kriege Fehler "Exception in thread" beim Benutzen von SubStrings. Java Basics - Anfänger-Themen 2
D Hilfe beim Erzeugen eines Arrays NullPointerException wird ausgelöst Java Basics - Anfänger-Themen 11
Nerdinfekt BMI Rechner, fehler beim Zurückgeben des Strings? Java Basics - Anfänger-Themen 2
CptK Richtigen Pfad beim einlesen von Datei finden Java Basics - Anfänger-Themen 2
O Methode in while-Schleife aufrufen geht nur beim ersten Mal Java Basics - Anfänger-Themen 2
pry bitte Hilfe beim Kreditrechner objektorientiert Java Basics - Anfänger-Themen 6
J Hilfe beim Label animieren Java Basics - Anfänger-Themen 1
Avalon Programmierstil beim Mocken Java Basics - Anfänger-Themen 45
Avalon NullPointerException beim Mocken Java Basics - Anfänger-Themen 6
J Hilfe beim verstehen Java Basics - Anfänger-Themen 3
A Fehler beim Ausführen einer class Datei Java Basics - Anfänger-Themen 6
P Problem beim Überschreiben einer vererbten Methode Java Basics - Anfänger-Themen 4
M Compiler-Fehler Fehler beim Ausführen des Codes Java Basics - Anfänger-Themen 25
L Anfänger braucht Hilfe - Stecke beim Lernen fest Java Basics - Anfänger-Themen 10
N Probleme beim printen von Arrays durch for Schleife Java Basics - Anfänger-Themen 3
Bluedaishi Hilfe beim erklären dieser Methode Java Basics - Anfänger-Themen 5
E Macht Java Rechenfehler beim Potenzieren und Mod? Java Basics - Anfänger-Themen 5
J Hilfe beim Programmieren Java Basics - Anfänger-Themen 5
C Fehler beim Speichern (Build projekt) Java Basics - Anfänger-Themen 42
S Endlosschleife beim Ausgeben einer LinkedList Java Basics - Anfänger-Themen 2
tom.j85 TicTacToe - probleme beim Casten Java Basics - Anfänger-Themen 6
J Problem beim vergleich von zwei Integer Java Basics - Anfänger-Themen 3
Kirby.exe Fehler beim Ausgeben Java Basics - Anfänger-Themen 2
L Brauche Hilfe beim arbeiten mit Konstruktoren Java Basics - Anfänger-Themen 20
D Was tun gegen zu komplzierten Denken beim Programmieren Java Basics - Anfänger-Themen 27
G Problem beim Speichern von Objekten in einer Datei Java Basics - Anfänger-Themen 7
S Collections funktionale Listen (ListNode<E>) review und problem beim clone Java Basics - Anfänger-Themen 0
J NullPointerException beim Klonnen eines Arayys und beim aufrufen einer Methode Java Basics - Anfänger-Themen 2
J Fehler beim generieren von 4 Zufallszahlen Zahl doppelt ist eigentlich ausgeschlossen Java Basics - Anfänger-Themen 9
L Kleine Hilfe beim Schreiben eines Programmes benötigt :D Java Basics - Anfänger-Themen 40
T Fehlermeldung beim Versuch, einen String einzulesen Java Basics - Anfänger-Themen 4
V Wie wiederhole ich eine for-Schleife beim erreichen eines Wertes Java Basics - Anfänger-Themen 9
W Hilfe beim Chat Programm Java Basics - Anfänger-Themen 14
D Beim Programmieren auf die Logisch einfache Lösung kommen. Java Basics - Anfänger-Themen 17
R String index out of range: -1 beim Datei Parsen Java Basics - Anfänger-Themen 15
I Methoden List.contains() beim 2. Element = true Java Basics - Anfänger-Themen 1
B EJB und Arquillian - bekomme Nullpointer Exception beim Aufruf der EJB Klasse Java Basics - Anfänger-Themen 40
O Verwirrt beim Java Collection Framework aufruf! Java Basics - Anfänger-Themen 9
S switch case fängt beim letzten case an Java Basics - Anfänger-Themen 6
S Erste Schritte Hilfe beim lernen von Programmieren Java Basics - Anfänger-Themen 2
der_Schokomuffin Hilfe gesucht beim Thema Objekte übergeben! Java Basics - Anfänger-Themen 2
A Pendeltouren beim Savings erfahren "schummeln" in Ordnung? Java Basics - Anfänger-Themen 1
dapzoo Compiler-Fehler Beim Werte verteilen in Objektarray NullPointerException Java Basics - Anfänger-Themen 4
C Methoden Problem beim Speichern von Variablen Java Basics - Anfänger-Themen 1
T Fehlermeldung beim Starten von FlashTool Java Basics - Anfänger-Themen 27
C Rekursives Backtracking beim Spiel Peg Java Basics - Anfänger-Themen 22
K Fehler beim Programmieren von TicTacToe Java Basics - Anfänger-Themen 12
J Hilfe beim Runden Java Basics - Anfänger-Themen 4
C Erste Schritte ArrayIndexOutOfBoundsException beim Speichern im Array Java Basics - Anfänger-Themen 2
F Problem beim entfernen von mehreren Listenelementen auf einmal (Programmierung des Spiels Arschloch) Java Basics - Anfänger-Themen 1

Ähnliche Java Themen

Neue Themen


Oben