Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite

Informatiker Board » Themengebiete » Praktische Informatik » Algorithmen » doppeltes vorkommen in arraylist löschen » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Neues Thema erstellen Antwort erstellen
Zum Ende der Seite springen doppeltes vorkommen in arraylist löschen
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
Haevelin
Tripel-As


Dabei seit: 04.06.2013
Beiträge: 221

doppeltes vorkommen in arraylist löschen Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

in einer ArrayList werden zusammengehörige Paare immer nacheinander abgespeichert; nun kann es vorkommen, dass zusammengehörige Paare darin mehrmals vorkommen. Wie lösche ich das mehrmalige Vorkommen zusammengehöriger Paare in einer ArrayList?
10.05.2016 20:36 Haevelin ist offline Beiträge von Haevelin suchen Nehmen Sie Haevelin in Ihre Freundesliste auf
Haevelin
Tripel-As


Dabei seit: 04.06.2013
Beiträge: 221

RE: doppeltes vorkommen in arraylist löschen Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Folgenden Code stelle ich vor, der aber nicht funktioniert:

ArrayList<String> kreuzung_copy= new ArrayList<String>();
if (kreuzung.size()>1){
kreuzung_copy.add(kreuzung.get(0));
kreuzung_copy.add(kreuzung.get(1));
for (int z=0; z<kreuzung.size()-2Augenzwinkern {
boolean gefunden=false;
for (int t=0; t<kreuzung_copy.size()-1Augenzwinkern {
if (kreuzung_copy.get(t).equals(kreuzung.get(z))&& kreuzung_copy.get(t+1).equals(kreuzung.get(z+1))){
gefunden = true;
//System.out.println("Double gefunden");
//System.exit(0);
break;
}
t+=2;



}
if(!gefunden){
kreuzung_copy.add(kreuzung.get(z));
kreuzung_copy.add(kreuzung.get(z+1));

}
z+=2;

}

} // ende if
10.05.2016 22:03 Haevelin ist offline Beiträge von Haevelin suchen Nehmen Sie Haevelin in Ihre Freundesliste auf
eulerscheZahl eulerscheZahl ist männlich
Foren Gott


Dabei seit: 04.01.2013
Beiträge: 2.859

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Was hast du gegen CODE Tags?
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
public class Main {
	public static ArrayList<String> removeDublicates(ArrayList<String> kreuzung) {
		ArrayList<String> kreuzung_copy = new ArrayList<String>();
		for (int z = 0; z < kreuzung.size() - 1; z += 2) {
			boolean gefunden = false;
			for (int t = z - 2; t >= 0; t -= 2) { //nur erstes Vorkommen bleibt
				//for (int t = z + 2; t < kreuzung.size() - 1; t += 2) { //nur letztes Vorkommen bleibt
				if (kreuzung.get(t).equals(kreuzung.get(z)) && kreuzung.get(t + 1).equals(kreuzung.get(z + 1))) {
					gefunden = true;
					break;
				}
			}
			if (!gefunden) {
				kreuzung_copy.add(kreuzung.get(z));
				kreuzung_copy.add(kreuzung.get(z + 1));

			}
		}
		return kreuzung_copy;
	}

	public static void main(String[] args) {
		ArrayList<String> test = new ArrayList<String>();
		test.add("1");
		test.add("2");
		test.add("3");
		test.add("4");
		test.add("1");
		test.add("2");
		System.out.println(Arrays.toString(removeDublicates(test).toArray()));
	}
}


Schon mal über eine andere Datenstruktur nachgedacht?
Mit HashMap<HashSet<String>> hast du auch Paare und verhinderst doppelte Einträge. Je nach Verwendungszweck gibt es bestimmt auch geeignetere Wege.

__________________
Syntax Highlighting fürs Board (Link)

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von eulerscheZahl: 11.05.2016 06:47.

11.05.2016 06:45 eulerscheZahl ist offline Beiträge von eulerscheZahl suchen Nehmen Sie eulerscheZahl in Ihre Freundesliste auf
Haevelin
Tripel-As


Dabei seit: 04.06.2013
Beiträge: 221

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Danke, funktioniert prima
11.05.2016 10:27 Haevelin ist offline Beiträge von Haevelin suchen Nehmen Sie Haevelin in Ihre Freundesliste auf
Baumstruktur | Brettstruktur
Gehe zu:
Neues Thema erstellen Antwort erstellen
Informatiker Board » Themengebiete » Praktische Informatik » Algorithmen » doppeltes vorkommen in arraylist löschen