ArrayList-Problem

J

Justus86

Gast
Ich hab hier eine Liste, 67716 Elemente
Code:
List<Long> list = readFile([...]);
Anschließend kommen zwei verschiedene Schleifen, die diese bearbeiten, also, eine neue Liste erstellen, jedes Element der alten Liste bearbeiten mittels ein paar Berechnungen und anschließend wieder hinzufügen.

Ich verwende in beiden Fälle eine ArrayList, das add wird jedes Mal aufgerufen. Versuche ich die Liste initial mit der benötigten Größe zu initialisieren erhalte ich nach 40 bis 90 Durchläufen einen:

Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 55, Size: 54
at java.util.ArrayList.rangeCheckForAdd(Unknown Source)
at java.util.ArrayList.add(Unknown Source)

Jemand eine Idee? Das witzige ist, in der ersten Schleife gehts, ohne Probleme, da sind die Berechnungen weit weniger aufwendig, beim zweiten mal schlägts hingegen fehl ...

Gruß Justus86
 
G

Gast2

Gast
Naja, das Problem ist eindeutig. Du versuchst auf den Index 55 zuzugreifen, aber deine Einträge hat nur 54 Einträge. Wieso weshalb warum, keine Ahnung, das lässt sich an der einen Codezeile nicht erkennen.
 
J

Justus86

Gast
Naja, so leicht ist es leider nicht ...
Der Fehler tritt immer mit unterschiedlichen Zahlen auf ... wie ich bereits oben schrieb.
Schreibe ich nicht explizit auf einen Index, sondern hänge mit add hinten meine Daten an, verliere ich einige Datensätze und die neue ArrayList hat nicht mehr die gleiche Größe wie die vorherige!
 
M

Marcinek

Gast
Nein die ArrayList hat eine dynamische größe

Poste mal den code und den stacktrace dazu.
 
J

Justus86

Gast
So, hier mal der Code, um die Berechnung von
Code:
number
gekürzt.

Ich hoffe, jemand kann mir sagen, was zu tun ist, ich bin mit meinem Latein echt am Ende, weder andere Listen, noch ein initialisieren mit der benötigten Größe oder ähnlichem brachte den gewünschten Erfolg!
Natürlich, man könnte sicher auch mit einem Array arbeiten, aber es muss doch auch so gehen!?

Code:
		List<Long> list = readFile([...]);

		System.out.println(list.size());

		if (scaledown) { // Divide everything through factor
			List<Long> hlist = new ArrayList<Long>();
			int s = list.size();
			for (int i = 0; i < s; i++) {
				hlist.add(Math.round(list.get(i) / factor));
			}
			list = hlist;
		}
		System.out.println(list.size()); //Hier kommt das richtige raus

		if (fake) {
			List<Long> hlist = new ArrayList<Long>();
			// List<Long> hlist = new Vector<Long>(2*s);
			// System.out.println(hlist.size());

			int rand = 0;

			[GANZ VIELE DEKLARATIONEN RAUSGENOMMEN]

			long number = 0;
			long value = 0;
			for (int i = 0; i < s; i++) {
				value = list.get(i);
				if (peak) {
					[BERECHNUNGEN]
				} else {
					[ANDERE BERECHNUNGEN]
				}
				int bor = 0;// 80 ists normalerweise, diesmal zu Testzwecken 0
				rand += (int) (Math.random() * (2 * bor) - bor);
				if (rand > bor) {
					rand = bor;
				} else if (rand < -bor) {
					rand = -bor;
				}
				hlist.add((value + number + rand));
			}
			list = hlist;
		}

		System.out.println(list.size());
//und hier fehlen stimmt die size dann nicht!!!
 
J

Justus86

Gast
Der untere Code wirft keinen Fehler und läuft so durch, nur ist die ArrayList nachher zu kurz! (Es fehlen zwischen 5 und 200 Elemente)

Verwende ich unten beim Aufruf von add(argument) stattdessen add(index, argument) dann tritt der oben mit stacktrace gepostete Fehler in der Zeile des adds auf, allerdings immer bei einem anderen Index (zwischen 40 und 90) (Trotz Initialisierung der ArrayList mit hinreichender Kapazität).
 
M

Marcinek

Gast
je mehr Postings du ohne Stacktrace machst, desto weniger können wir die helfen.

Ich vermute mal, dass das Array, dass den Fehler erzeugt nicht das ist, was du denkst, das es ist.
 
J

Justus86

Gast
Okay, wo und wie kriege ich das her?

Der aktuell gepostete Code wirft keine Fehler!

Das sind die Ausgaben der System.out.println();
67716
67716
66707

Ich hoffe, ich hab nen Brett vorm Kopf, weiß echt nicht mehr, woran es liegen könnte?!
 
B

BoBoHelp

Gast
Hallo,
eine Frage,
Java:
...
[GANZ VIELE DEKLARATIONEN RAUSGENOMMEN]

			long number = 0;
			long value = 0;
			for (int i = 0; i < s; i++) {
...

was für ein Wert hat s ?.
 
G

Gast2

Gast
Java:
[GANZ VIELE DEKLARATIONEN RAUSGENOMMEN]
Dann nimm da mal wieder die Deklaration von s wieder rein... s muss ja irgendwo her kommen.

PS: Und mach dir dafür bitte nen eigenes Thema auf.
 
J

Justus86

Gast
Java:
int s = list.size();

Den Code habe ich nur zum posten rausgenommen, bei mir ist der vorhanden. Der tut aber nix mit i.
 
G

Gast2

Gast
Deine Frage war doch: "was für ein Wert hat s?". Die Antwort:
Java:
int s = list.size();
s ist die größe von list.
 
J

Justus86

Gast
Ich bin der TE, nicht derjenige der nach s gefragt hat, das war auch nicht die eigentliche Frage, sondern, die Frage ist, warum ist die Arraylist<Long> list am Ende nicht mehr genausolang wie am Anfang?!?

Klar, wie wird überschrieben, durch eine neue, aber diese wird mittels Iteration über die alter Erzeugt. Im ersten durchlauf klappt die Iteration, warum im zweiten nicht?!

Gruß Justus86
 
J

Jutsus86

Gast
Hat sich erledigt!

[TIPP]Es lag ein einem
Java:
continue
was ich zwischen meinem ganzen
Java:
 if {} else {}
nicht gesehen hab[/TIPP]
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
C ArrayList Problem Allgemeine Java-Themen 3
O ArrayList - Serialisierungs-Problem Allgemeine Java-Themen 11
O Problem beim Auslesen einer Arraylist von JComboBoxen Allgemeine Java-Themen 2
Maxim6394 Problem mit ArrayList Allgemeine Java-Themen 5
B Problem mit ArrayList<String> und Umlauten Allgemeine Java-Themen 8
A Problem beim serialisieren/deserialisieren einer ArrayList Allgemeine Java-Themen 3
G Problem mit ArrayList bzw. dem erzeugen derer Allgemeine Java-Themen 2
B ArrayList Problem Allgemeine Java-Themen 12
M Problem mit ArrayList und dem hinzufügen Allgemeine Java-Themen 20
L Problem mit ArrayList Allgemeine Java-Themen 7
L Problem mit ArrayList Allgemeine Java-Themen 10
L Problem mit ArrayList Allgemeine Java-Themen 6
M ArrayList oder LinkedList Allgemeine Java-Themen 10
C Sortieren und Selektieren einer ArrayList<Point3D> Allgemeine Java-Themen 6
A Einzelne Objekte und Unterobjekte einer ArrayList ausgeben Allgemeine Java-Themen 53
T Remove bei ArrayList funktioniert nicht Allgemeine Java-Themen 2
B Type mismatch: cannot convert from Graph.Edge to ArrayList<Graph.Edge> Allgemeine Java-Themen 21
R ArrayList Allgemeine Java-Themen 4
G jToggleButton in Array/ArrayList Allgemeine Java-Themen 12
J ArrayList, ganze Zeilen löschen oder überspringen Allgemeine Java-Themen 4
L ArrayList sortieren Allgemeine Java-Themen 2
O Datentypen Wie kann ich den Typ einer ArrayList abfragen ? Allgemeine Java-Themen 7
S Best Practices CopyConstrutor mit ArrayList Allgemeine Java-Themen 1
S ArrayList Design Allgemeine Java-Themen 4
S Array dynamisieren oder ArrayList verwenden? Allgemeine Java-Themen 17
L ArrayList mit String Arrays in ein Array umwandeln Allgemeine Java-Themen 1
H Elemente aus ArrayList in Array speichern Allgemeine Java-Themen 8
MiMa Person in einer Arraylist hinzugügen mit Prüfung ? Allgemeine Java-Themen 6
X Adjazenzliste ohne ArrayList Allgemeine Java-Themen 6
X Output von ArrayList Allgemeine Java-Themen 3
H Stream in ArrayList umwandeln Allgemeine Java-Themen 2
H Mehrere Datentypen in einer Arraylist speichern Allgemeine Java-Themen 9
H Arraylist mit anderer ArrayList überschreiben Allgemeine Java-Themen 17
MiMa ArrayList sortieren?? Allgemeine Java-Themen 5
Curtis_MC Pointer mit ArrayList vergleichen Allgemeine Java-Themen 6
F ArrayList`s in Klassen mit Getter/Setter Allgemeine Java-Themen 8
W Array vs. ArrayList vs. HashMap Allgemeine Java-Themen 20
F Arraylist vollständig abspeichern und laden Allgemeine Java-Themen 1
R Arraylist in andere Klasse leiten und bearbeiten Allgemeine Java-Themen 10
D ArrayList Indexlänge ändern Allgemeine Java-Themen 2
E Elemente innerhalb einer ArrayList vergleichen Allgemeine Java-Themen 33
K ursprüngliche ArrayList ändert sich bei Übergabe in Methode Allgemeine Java-Themen 18
N Mehrdimensionale ArrayList mischen Allgemeine Java-Themen 10
S JTable - mehrere ausgewählte Rows in ArrayList Allgemeine Java-Themen 5
MiMa Date aus einer ArrayList<Date> holen ?? Allgemeine Java-Themen 5
MiMa ArrayList Rückgabewerte aus einer Funktion Allgemeine Java-Themen 15
L CSV File lesen, in ArrayList speichern und ausgeben Allgemeine Java-Themen 3
M Was geschieht mit Java-Klasse, die aus ArrayList entfernt wird? Allgemeine Java-Themen 10
M Methoden Generische Methode für ArrayList Allgemeine Java-Themen 7
T Collections ArrayList Sortieren Allgemeine Java-Themen 4
P GUI: ArrayList anzeigen funktioniert nicht Allgemeine Java-Themen 5
H ArrayList: Leere Elemente finden? Allgemeine Java-Themen 2
GreenTeaYT Verständnisprobleme zur Arraylist Allgemeine Java-Themen 1
T Methoden Methode zum durchsuchen einer ArrayList Allgemeine Java-Themen 8
K ArrayList sortieren Allgemeine Java-Themen 16
A Bestimmte Inhalte aus ArrayList 1 in ArrayList 2 kopieren Allgemeine Java-Themen 6
S Mehrdimensionales ArrayList ins HashSet Allgemeine Java-Themen 10
C ArrayList Allgemeine Java-Themen 8
Streeber Probleme mit AWT-EventQueue: ArrayList Elemente hinzufügen Allgemeine Java-Themen 1
F Methoden Arraylist weiterverwenden nach methoden Aufruf Allgemeine Java-Themen 2
Z NullPointerException beim Schreiben einer ArrayList in eine Datei Allgemeine Java-Themen 6
L Von ArrayList abgeleitete Klasse nur mit bestimmten Objekten füllen Allgemeine Java-Themen 1
K Array in ArrayList Allgemeine Java-Themen 16
Paul15 2D Arraylist in Jtable Allgemeine Java-Themen 1
Paul15 Arraylist 2D Allgemeine Java-Themen 8
B ArrayList in ein Objekt legen Allgemeine Java-Themen 1
Neumi5694 Datentypen ArrayList vs TreeMap Allgemeine Java-Themen 6
F ArrayList Allgemeine Java-Themen 11
X ArrayList will nicht so wie ich will. Hilfe Allgemeine Java-Themen 8
N ArrayList in eigenem Object nicht richtig serialisierbar Allgemeine Java-Themen 14
M ArrayList mit verschiedenen Datentypen in String konvertieren Allgemeine Java-Themen 10
Z Elemente einer ArrayList von rechts wegnehmen Allgemeine Java-Themen 5
W Arraylist Text Suchen und Datei löschen Allgemeine Java-Themen 5
R ArrayList und HashMap Allgemeine Java-Themen 7
T ArrayList zeilenumbruch entfernen Allgemeine Java-Themen 13
D Arraylist/For Schleife/Scanner Allgemeine Java-Themen 30
E ArrayList Anzahl der gleichen Elemente Allgemeine Java-Themen 4
Doopy ArrayList plötzlich leer Allgemeine Java-Themen 2
D Arraylist eigener Klasse an iReport übergeben Allgemeine Java-Themen 7
L ArrayList Inhaltstyp. Allgemeine Java-Themen 5
Z Klassen ArrayList selbst machen Allgemeine Java-Themen 5
J Arraylist speichern und laden? Allgemeine Java-Themen 5
C Generics Objekt in ArrayList Allgemeine Java-Themen 2
D ArrayList index auf gültigkeit prüfen Allgemeine Java-Themen 12
M ArrayList<String> Frage Allgemeine Java-Themen 7
O ArrayList kaputt?! Allgemeine Java-Themen 5
M ArrayList<Foo> in ein Foo[] konvertieren? Allgemeine Java-Themen 8
Bananabert Abstract ArrayList Allgemeine Java-Themen 4
A Collections Array-Elemente in ArrayList kopieren ohne Schleife Allgemeine Java-Themen 7
M JTable + ArrayList Allgemeine Java-Themen 3
M Datentypen ArrayList in Integer konvertieren Allgemeine Java-Themen 3
O Collections ListIterator gibt Inhalt von ArrayList nicht aus Allgemeine Java-Themen 3
Madlip Variablen 3 Werte aus ArrayList und weiter ... Allgemeine Java-Themen 4
S arraylist nach n. Eintrag numerisch Sortiren Allgemeine Java-Themen 5
R Threads korrekte Synchronisation bei Vector und ArrayList Allgemeine Java-Themen 6
M Kovariante Rückgabewerte mit ArrayList Allgemeine Java-Themen 3
H LinkedList<LinkedList<String>> nach ArrayList<ArrayList<String>> ? Allgemeine Java-Themen 9
E NetBeans Vector durch ArrayList ersetzen Allgemeine Java-Themen 4
E Berechnung in Arraylist Allgemeine Java-Themen 10
E ArrayList mit unbekannter Größe Allgemeine Java-Themen 8

Ähnliche Java Themen

Neue Themen


Oben