Ich soll eine Datei einlesen, die viele verschiedene E-Mail-Adressen enthält, und sie mit einem Array ausdrucken. Das Problem ist, ich muss doppelte E-Mails beseitigen.
Ich konnte meinen Versuch / Fang arbeiten und die E-Mail-Adressen ausdrucken. Ich bin mir jedoch nicht sicher, wie ich die Duplikate entfernen soll. Ich habe kein Verständnis für Hashcodes oder wie man Set
noch benutzt. Jede Hilfe wäre willkommen.
Hier ist was ich bisher habe:
%Vor%Die einfache Lösung ist, dass set java verwendet wird,
Setzen Sie den doppelten Wert automatisch
und in Ihrem Code haben Sie Array als Array konvertieren direkt mit Code
setzen %Vor% Lerne Set
. Die Zeit, die Sie brauchen, um es zu lernen, ist geringer als die Zeit, die Sie brauchen, um etwas zu programmieren, das es nicht benutzt.
Ich werde dich anfangen. Ersetzen Sie dies:
String[] address = new String[100];
mit diesem:
Set<String> addresses = new HashSet<String>();
Und das:
address[i] = email;
mit diesem:
addresses.add(email);
Sie brauchen das i
nicht mehr.
Du bist fertig. Wenn Sie alles ausdrucken möchten:
%Vor% Das deckt es ziemlich genau ab. Soll alles automatisch sortiert werden? Ersetzen Sie% HashSet
durch TreeSet
. Jetzt lesen Sie dieses hervorragende Tutorial , damit Sie das nächste Mal alles schneller und schneller erledigen können dein eigenes.
Sie können versuchen, jedes Element im Array durchzugehen, indem Sie es zu einem anderen Element hinzufügen und prüfen, ob das zweite Array das nächste Element enthält, falls es es überspringt. Dann ersetzen Sie einfach das erste Array durch das zweite. ( ArrayList
ist in diesem Fall jedoch besser).
so etwas wie das:
%Vor%Verwenden Sie die ArrayUtil-Klasse nach Bedarf. Ich habe einige andere Methoden geschrieben als das Entfernen von Duplikaten. Diese Klasse wird ohne Verwendung von Collection-Framework-Klassen implementiert.
%Vor%Verwenden Sie den folgenden Code zum Entfernen von Duplikaten in einem Integer-Array.
Wenn Sie Duplikate entfernen möchten, können Sie Folgendes versuchen:
%Vor%Das erste, was mir in den Sinn kommt, ist, das Array zu sortieren und dann zu prüfen, ob das nächste Element dem aktuellen Element entspricht. Wenn ja, löschen Sie das aktuelle Element.
oh und wenn Sie nicht wissen, wie viele E-Mails in der Datei gespeichert sind, ist ein Array wahrscheinlich nicht der beste Weg. Ich würde irgendeine Art von Liste nehmen, so dass ich mich nicht darum kümmern muss, wie viele E-Mail-Adressen in der Datei sind.
Sie können eine Funktion schreiben, die auf dem Array ausgeführt wird und eine E-Mail gleichzeitig aufnimmt. Wenn sie dieselbe Adresse findet, wird sie einfach auf null gesetzt. Wenn Sie mit dem Array arbeiten, um es auszudrucken, machen Sie eine Bedingung, um die E-Mail nur zu drucken, wenn es nicht null ist
Tags und Links java arrays duplicates