Ich versuche zu verhindern, dass doppelte Einträge zu einer ArrayList hinzugefügt werden, während die Liste beim Lesen jeder Zeile einer Datei gefüllt wird. Jede Zeile der Datei hat das Format "node1 node2" (tab delimiter). Ein Duplikat könnte hier entweder "node1 node2" oder "node2 node1" sein. Hier ist mein Code, um zu versuchen und diese Operation auszuführen:JAVA: Doppelte Einträge in eine ArrayList verhindern
while((line = bufferedReader.readLine()) != null) {
String delimiter = "\t";
String[] tempnodelist;
tempnodelist = line.split(delimiter);
for (int i=0; i <= edgesnumber; i++) { //edgesnumber = edges.size()
if (tempnodelist[0] && tempnodelist[1] != edges.get(i)) {
edges.add(line);
}
}
nodes.add(tempnodelist[0]);
nodes.add(tempnodelist[1]); //intial intended use of tempnodelist.
}
Da ich schon jede Zeile Aufspalten einen HashSet jeden Knotens zu machen, ich versuche, diese zu verwenden, um Duplikate zu überprüfen . Im Moment kann ich die Syntax nicht richtig finden. Wie kann ich vorherige Einträge der ArrayList auf Duplikate überprüfen und verhindern, dass sie hinzugefügt werden, während die ArrayList weiterhin gefüllt wird? Was ist momentan falsch an diesem Code?
Bitte fragen Sie Fragen, wenn etwas unklar ist,
Vielen Dank im Voraus!
Wenn Sie doppelte Einträge nicht wollen, dann wollen Sie ein 'Set', kein' list'. –
Aber Einträge könnten umgekehrt werden, würde immer noch als ein Duplikat zählen ... Set würde das nicht sehen, oder? – user2941526
Set verwendet 'equals()', um Duplikate zu finden. Sie sollten eine bestimmte Klasse für das Objekt erstellen, das Sie in Ihre Gruppe einfügen möchten, und '' equals() 'für diese Klasse definieren. –