Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Also folgende problem stellung. Ist wahrscheinlich eine BabyFrage aber ich stell sie trotzdem.
ich brauch folgenden Algorithmus:
Ich habe ein String Array mit sieben Elementen. Darin stehen auch Woerter die doppelt vorkommen. Ich will dieses Array jetzt so umwandeln das jedes Wort nur ein mal vorkommt.
Wie schaut des algorithmus dazu aus?
Kann mir jemand helfen?
Also entweder im Prinzip alles mit allem vergleichem und doppelte Elemente dann z.B. auf 'null' setzen oder du schiebst die Daten in einen anderen Datencontainer (z.B. ein anderes String-Array; noch besser sowas wie eine ArrayList oder einen Vector) schieben und vorher gucken, ob's schon mal drinne ist.
Entweder wie sky80 sagt alles mit allem vergleichen, oder wenn Du auf Objekte der Standard-API zurückgreifen willst/darfst/musst, kannst Du auch mit java.util.HashSet arbeiten.
Du fügst einfach jedes Element Deines Arrays einem HashSet-Objekt hinzu. Das HashSet kümmert sich von allein darum, dass es keine Duplikate gibt.
So wie Sky80 gesagt hat so wollte ich es eigentlich machen, aber ich tu mir schwer mit verschachtelten Schleifen und verschiedenen Index. Mein noch falscher Code schaut so aus:
das problem ist erstmal dass du nicht weißt wie groß outer sein soll ohne einmal vorher durchzulaufen. wenn du sie nur auf null setzen willst dann müsste deine Schleife so aussehen:
Code:
for ( int i = 0; i < s.length; i++ ) {
for ( int j = i+1; j < s.length; j++ ) {
if(s[i] == s[j]) {
s[j]=null;
}
}
}
schöner finde ich L-ectron-X methode:
Code:
String[] s = new String[] { "H", "A", "H", "R", "T", "A", "F" };
Set<String> set = new HashSet<String>(Arrays.asList(s));
Die zweite Methode ist echt kuerzer und uebersichtlicher, aber ich kenn mich damit leider nicht aus. Deshalb kurz ein paar fragen:
wo steht dann mein gefiltertes Array drin? Immer noch in s? weil wenn das so waere dann koennte ich ja auch mit diesem Array weiter atbeiten, oder? und ich muss java.util.* importieren, oder?
in der zweiten Lösung arbeitest du nicht mehr mit dem Array, sondern mit dem Set (achja, anstatt HashSet kannst du auch TreeSet nehmen - dann sind die Element auch gfleich sortiert).
D.h. du kannst mit dem Set weiterarbeiten (man könnte auch das Set wieder in einen Array umwandeln).
Dafür müssten die Klassen java.util.Arrays, java.util.Set und java.util.HashSet (bzw. TreeSet) importiert werden
Noch was wenn ich das so probiere bekommen ich eine Fehlermeldung:
Cap.java:50: '(' expected.
Set<String> set = new HashSet<String>(Arrays.asList(outer));
Wo soll denn da noch ne klammer hin?