For-Each und Modifikation eines Arrays

glitsch

Aktives Mitglied
Hi zusammen,
ich habe ein mehrdimensionales ArrayList und greife hier wie folgt auf die Daten zu:

Code:
	public void deleteCD(String s) {
		for(ArrayList a : cdkatalog){
			if(a.get(0).equals(s)) {
				int x = this.cdkatalog.indexOf(a);
				this.cdkatalog.remove(x);
			}
		}	
	}

Das funzt solange gut, wie das ArrayList mehr wie ein Objekt enthält. Wenn ich aber genau eines habe und gleichzeitig während der Iteration durch For-Each modifizeren möchte (remove!) dann krieg ich eine Exception. Ich bin gerade total überfragt, wie ich das Schönheitsproblem löse kann!!! :bloed:
 
Zuletzt bearbeitet von einem Moderator:
G

Gast2

Gast
Du darfst die Liste über die du grad mit einer for-each Schleife iterierst nicht modifizieren.
Dafür musst du nen Iterator hernehmen, der kennt die Methode remove().
 

glitsch

Aktives Mitglied
mit mind. 2 Objekten im ArrayList geht das aber? Man könnte einfach den ersten Fall abfangen, wenn das ArrayList nur 1 Objekt enthält... Das würde auch gehen. Habe ich gerade getestet. Aber gibt es keine einfache Lösung. :eek:
Jetzt muss ich alles auslagern in mehrere Methoden? Eine Methode die nur iteriert?
 
G

Gast2

Gast
Nein, auch mit mehreren Elementen funktioniert das nicht.
Mehrere Methoden brauchst du da auch nicht. Du musst lediglich deine for-each Schleife durch einen Iterator ersetzen.
 

glitsch

Aktives Mitglied
Ok, danke. Wie kann ich auf den Inhalt eines Objektes im ArrayList zugreifen???
Code:
itr = cdkatalog.iterator();
		while(itr.hasNext()) {
			Object element = itr.next();
			if(element.equals(s)) {
				System.out.println(element);
			         ...
			}

:bahnhof:

Also ich muss ja das innere Objekt abfragen auf einen String. :eek:
 

tschero

Aktives Mitglied
Evtl. hilft es Dir ja.

Java:
ArrayList<String> myArrayList = new ArrayList<String>();

myArrayList.add("einen String"); 
myArrayList.add("noch einen String"); 

ListIterator li = myArrayList.listIterator();

        while(li.hasNext())
        {
            String helpString = (String)li.next();
            System.out.println(helpString );

        }

--> ungetestet. nur reingetippt

Gruß
tschero
 

fastjack

Top Contributor
Da die ArrayList index-basiert ist, kannst Du auch rückwärts iterieren und ggf. ohne probleme löschen:

Code:
for(int i = myArrayList.size() - 1; i >= 0; i --) {
    String elem = myArrayList.get(i);
    if (mustRemove(elem)) {
        myArrayList.remove(i);
    }
}
 

Timothy Truckle

Top Contributor
Mal 'ne ganz nebensächliche Frage:
Code:
	public void deleteCD(String s) {
		for(ArrayList a : cdkatalog){
			if(a.get(0).equals(s)) {
Kann es sein, dass Du die Eigenschaften deiner CD's unstrukturiert als Elemente in weiteren ArrayLists hast, die ihrerseits in
Code:
cdkatalog
liegen?

Wenn Du unbedingt keine Klasse erzeugen wolltes könntest Du Doch wenigsten eine [JAPI]Map[/JAPI] einsetzen. Wer will den in einem halben Jahr noch wissen, welcher Index für welche Eigenschaft steht?

bye
TT
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Brauche Hilfe bei for-each Aufgabe Java Basics - Anfänger-Themen 1
N methodenaufruf for each geht nicht Java Basics - Anfänger-Themen 2
T for-each-Schleife, verschiedene Datentypen Java Basics - Anfänger-Themen 1
T Methode um Array mit for-each-Schleife auszulesen Java Basics - Anfänger-Themen 7
Z Boolean Abfrage in einer for each Schleife Java Basics - Anfänger-Themen 2
G Collections Verständnisfrage zur For-Each-Schleife Java Basics - Anfänger-Themen 7
G Verständnisfrage zu for-each Java Basics - Anfänger-Themen 4
K Array mit for-each Schleife füllen Java Basics - Anfänger-Themen 5
K For Each Schleife wieder von Beginn an iterieren Java Basics - Anfänger-Themen 12
F for each Java Basics - Anfänger-Themen 3
T For each schleife Java Basics - Anfänger-Themen 4
G PrintWriter each line möglich? Java Basics - Anfänger-Themen 4
T String und for-each Schleife Java Basics - Anfänger-Themen 5
A For each loop Java Basics - Anfänger-Themen 3
P for each schleife Java Basics - Anfänger-Themen 4
L for each schleife und löschen von elementen Java Basics - Anfänger-Themen 8
S For-Each Loop Java Basics - Anfänger-Themen 16
C Frage zur For-Each-Schleife Java Basics - Anfänger-Themen 6
M for each-Schleife Java Basics - Anfänger-Themen 13
E for each Schleife Java Basics - Anfänger-Themen 13
G for-each schleife Java Basics - Anfänger-Themen 3
J For-Each-Schleife abwechselnd auslesen Java Basics - Anfänger-Themen 3
G mit for each über Map iterieren :bahnhof: Java Basics - Anfänger-Themen 3
M String mit For Each durchlaufen Java Basics - Anfänger-Themen 4
M Länge eines Arrays als Variable speichern möglich? Java Basics - Anfänger-Themen 14
P Objekt einer Methode eines anderen Objektes übergeben Java Basics - Anfänger-Themen 5
P Wie kann ich beispielsweise Speicherstände eines Spiels DAUERHAFT in meinem Programm speichern? Java Basics - Anfänger-Themen 3
laxla123 Eigenschaften eines Algorithmus (determiniert vs.. deterministisch) Java Basics - Anfänger-Themen 2
monsterherz Ablauf der Erstellung eines Java Programmes Java Basics - Anfänger-Themen 17
monsterherz Fehler Semikolon fehlt - ich weiss aber nicht wo da noch eines hin sollte... Java Basics - Anfänger-Themen 21
J Farbe des Striches eines TitledBorders ändern Java Basics - Anfänger-Themen 2
pc pc pc pc pc letztes Element eines Arrays n Java Basics - Anfänger-Themen 3
walid Öffnungszeiten eines Geschäftes Java Basics - Anfänger-Themen 3
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
U Eigenschaft eines JTextfiels per ActionListener ändern... Java Basics - Anfänger-Themen 2
B Synchronisation eines kleinen Museums Java Basics - Anfänger-Themen 47
krgewb Breite und Höhe eines Bildes in base64 auslesen Java Basics - Anfänger-Themen 3
Sachinbhatt Was ist die Notwendigkeit eines Sammlungsframeworks in Java? Java Basics - Anfänger-Themen 2
N Textdatei aus Resourcen-Ordner eines Projekts/ jar-file lesen Java Basics - Anfänger-Themen 4
B Produkt eines double - streams Java Basics - Anfänger-Themen 3
B Attribute eines Objekts einer Klasse durch statische Methode einer 2. Klasse ändern? Java Basics - Anfänger-Themen 32
S Variablen Letzte Zeile eines Strings entfernen Java Basics - Anfänger-Themen 1
D Inhalt eines Arrays ausgeben Java Basics - Anfänger-Themen 7
A Jedes zweite Element eines Arrays entfernen Java Basics - Anfänger-Themen 30
sserio Java Fx, wie erstellt man einen EventHandler, der durch das Drücken eines Button Texte in eine Table view einfügt Java Basics - Anfänger-Themen 17
J Größe eines Strings in Pixel Java Basics - Anfänger-Themen 18
M Parse-Tree eines statements darstellen Java Basics - Anfänger-Themen 0
H Java verkettete Liste, Wert eines Index zurückgeben Java Basics - Anfänger-Themen 1
bluetrix Programmieren eines Bots für Zahlen-Brettspiel Java Basics - Anfänger-Themen 9
J Hinzufügen eines Objektes in ein Objekt-Array Java Basics - Anfänger-Themen 62
M Wie kann die Implementation einer Methode den Wert eines Attributs vermindern? Java Basics - Anfänger-Themen 3
A Rekursive Implementation eines Codes Java Basics - Anfänger-Themen 4
H String Repräsentation eines Rechtecks mit Instanz-Methode Java Basics - Anfänger-Themen 8
M Konstruktor ohne Übergabe eines Wertes Java Basics - Anfänger-Themen 7
M Wie kann ich in einem Konstruktor die Methode eines anderen Interfaces mit den jeweiligen Parametern aufrufen? Java Basics - Anfänger-Themen 8
M Wie erreiche ich das Vorwärtsgehen eines Roboters? Java Basics - Anfänger-Themen 2
M Wie erreiche ich es das Vorwärtsgehen eines Roboters? Java Basics - Anfänger-Themen 0
R While-Loop der die Einträge eines Arrays in umgekehrter Reihenfolge anzeigt Java Basics - Anfänger-Themen 3
A Optimierung eines Programms: Mergen der Dateien Java Basics - Anfänger-Themen 23
melisax Alle Möglichkeiten eines Wortes angeben Java Basics - Anfänger-Themen 3
A Java, verarbeitung eines xml-files Java Basics - Anfänger-Themen 2
C Fehler beim erstellen eines Objektes Java Basics - Anfänger-Themen 3
B Konkatenieren eines Strings und inkremtierenden Zahl zu einer INT Variablen Java Basics - Anfänger-Themen 7
F Initialisieren eines Web-Mp3 Players in Tabs durch "booleans" erst wenn Tab geöffnet wird ...? Java Basics - Anfänger-Themen 1
P Drei Zahlen eines Würfelspiels auswerten Java Basics - Anfänger-Themen 7
C Brauche Hilfe beim Schreiben eines Programmes :/ Java Basics - Anfänger-Themen 1
C initialisieren eines arrays richtiger Größe und mit geeignetem Datentyp Java Basics - Anfänger-Themen 26
C Überprüfen eines Programms auf Syntaxfehler Java Basics - Anfänger-Themen 3
S Wie kann ich den Bereich eines Integers begrenzen? Java Basics - Anfänger-Themen 2
nonickatall Grundsätzliches Verständnisproblem des Aufbaus eines Programms Java Basics - Anfänger-Themen 19
B Downgrade eines bestehenden Projektes Java Basics - Anfänger-Themen 5
amelie123456 Geschwindigkeit der Methode bewegeDich eines Objekts ändern Java Basics - Anfänger-Themen 2
D Hilfe beim Erzeugen eines Arrays NullPointerException wird ausgelöst Java Basics - Anfänger-Themen 11
J maximaler Wert eines Integers Java Basics - Anfänger-Themen 14
TimoN11 IntelliJ , Ausgabe von einem Quellcode in Eingabe eines Quellcodes Java Basics - Anfänger-Themen 1
Z Rückgabe eines Values in umgekehrte richtung Java Basics - Anfänger-Themen 5
L Methode zum invertieren eines Arrays Java Basics - Anfänger-Themen 7
B fragen zu Aufbau eines UML-Klassendiagramm Java Basics - Anfänger-Themen 1
eleonori Durchschnitt aller Werte eines Baums berechnen Java Basics - Anfänger-Themen 5
M Benutzereingabe eines Codes verbessern Java Basics - Anfänger-Themen 3
B Modulo-Operator anhand eines Beispieles erklären Java Basics - Anfänger-Themen 7
J Verschieben von Buchstaben in einem String um vorgegebene Anzahl von Zeichen innerhalb eines weiteren String Java Basics - Anfänger-Themen 12
F Auf Variablen eines Konstruktors zugreifen Java Basics - Anfänger-Themen 4
Kawastori Größe eines Arrays bestimmen Java Basics - Anfänger-Themen 13
Lena_2611 Vergleich von Array1 Index mit Array2 Wert und erzeugen eines neues Arrays Java Basics - Anfänger-Themen 8
A Teilarrays eines 2D-Arrays sortieren Java Basics - Anfänger-Themen 4
marcooooo Separator zwischen allen Zeichen eines Strings einfügen Java Basics - Anfänger-Themen 29
C Wie kann ich Versionen eines Projektes in Eclipse erstellen? Java Basics - Anfänger-Themen 3
yoskaem Text Color durch Klicken eines Buttons in anderer Activity ändern Java Basics - Anfänger-Themen 2
A Teilen eines Arrays Java Basics - Anfänger-Themen 5
DorFey Sortieren eines mehrdimensionalen Arrays Java Basics - Anfänger-Themen 8
P Klasse hat keinen Zugriff auf getter/setter-Methoden eines Objektes Java Basics - Anfänger-Themen 9
R Löschen und ausgeben eines Teilbaums Java Basics - Anfänger-Themen 3
J Alle Werte eines Strings zusammen addieren Java Basics - Anfänger-Themen 15
M Hilfe bei Strukturierung eines Buchungssystems Java Basics - Anfänger-Themen 3
M Erstellen eines insets Objekts, GridBagLayout Java Basics - Anfänger-Themen 13
M Rückgabe eines Arrays Java Basics - Anfänger-Themen 10
Z Erste Schritte Indexe innerhalb eines Arrays zusammensählen Java Basics - Anfänger-Themen 14
W Random Zahl unter Berücksichtung eines Durchschnitts Java Basics - Anfänger-Themen 7

Ähnliche Java Themen

Neue Themen


Oben