Doppelte Einträge aus String [] Array entfernen.

cmate

Mitglied
Hallo,

ich habe ein String Array mit folgendem Inhalt (gekürzt);

01-0
100-
0-01
-001
010-
0-01
100-
-001

Nun möchte ich doppelte Strings, hier also Zeilen entfernen. Ich habe das nach Suche im Forum über die Konvertierung in ein HashSet probiert.
Code:
Set hashSet = new HashSet(Arrays.asList(str));
String[] str2 = (String[]) hashSet.toArray(new String[hashSet.size()]);
Leider funktioniert das nicht. Kann mir jemand auf die Sprünge helfen, wie ich da vorgehen kann?
 
Das funktioniert einwandfrei. Du solltest allerdings noch <String> hinter HashMap schreiben
Java:
Set<String> hashSet = new HashSet<String>(Arrays.asList(str));
 
Doch, das geht schon:

Java:
    public static void main(String[] args) {
        String[] sa = "01-0 100- 0-01 -001 010- 0-01 100- -001".split(" ");
        Set<String> ss = new HashSet<String>(Arrays.asList(sa));
        System.out.println("ss = " + ss);
    }

Oder halt so:

Java:
    public static void main(String[] args) {
        String[] sa = "01-0 100- 0-01 -001 010- 0-01 100- -001".split(" ");
        Set<String> ss = new HashSet<String>();
        boolean[] ba = new boolean[sa.length];
        for (int i = 0; i < sa.length; i++) {
            if (!ss.contains(sa[i])) {
                ss.add(sa[i]);
                ba[i] = true;
            }
        }
        for (int i = 0; i < sa.length; i++) {
            if (ba[i]) {
                System.out.println(sa[i]);
            }
        }
    }

Oder so:

Java:
    public static void main(String[] args) {
        String[] sa = "01-0 100- 0-01 -001 010- 0-01 100- -001".split(" ");
        Set<String> ss = new HashSet<String>(Arrays.asList(sa));
        sa = ss.toArray(new String[0]); // oder ss.toArray(new String[ss.size()]);
        Arrays.sort(sa);
        System.out.println("sa = " + Arrays.toString(sa));
    }
 
Zuletzt bearbeitet von einem Moderator:
Ich hab hier mittlerweile auch ein Beispiel gebaut und sehe das es normalerweise funktioniert. In dem Programm an dem ich arbeite, funktioniert es nicht und führt statt dessen zu dem beschriebenen Fehler. Ich probiere nun ein KSKB daraus zu erstellen um es hier zu posten. Gestaltet sich etwas schwierig für mich, zumal der Zusammenhang nicht mehr so ganz klein ist.
 

Zurück
Oben