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

Informatiker Board » Themengebiete » Praktische Informatik » Algorithmen » doppeltes vorkommen in arraylist löschen » Antwort erstellen » Hallo Gast [Anmelden|Registrieren]

Antwort erstellen
Benutzername: (du bist nicht eingeloggt!)
Thema:
Nachricht:

HTML ist nicht erlaubt
BBCode ist erlaubt
Smilies sind erlaubt
Bilder sind erlaubt

Smilies: 21 von 33
smileWinkDaumen hoch
verwirrtAugenzwinkerngeschockt
Mit ZungeGottunglücklich
Forum Kloppebösegroßes Grinsen
TanzentraurigProst
TeufelSpamWillkommen
LehrerLOL HammerZunge raus
Hilfe 
aktuellen Tag schließen
alle Tags schließen
fettgedruckter Textkursiver Textunterstrichener Text zentrierter Text Hyperlink einfügenE-Mail-Adresse einfügenBild einfügen Zitat einfügenListe erstellen CODE einfügenPHP CODE farbig hervorheben
Spamschutz:
Text aus Bild eingeben
Spamschutz

Die letzten 4 Beiträge
Haevelin

Danke, funktioniert prima
eulerscheZahl

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.
Haevelin RE: doppeltes vorkommen in arraylist löschen

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
Haevelin doppeltes vorkommen in arraylist löschen

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?