entfernen Sie doppelte Zeichenfolgen in einer Liste in Java

Update:
Ich denke HashSet.add(Object obj) nicht nennen contains. gibt es eine Möglichkeit, das umzusetzen, was ich will(entfernen dup strings groß - /Kleinschreibung ignorieren mit Set)?

Ursprünglichen Frage:
versuchen zu entfernen dups aus einer Liste von Strings in java ist, jedoch in den folgenden code CaseInsensitiveSet.contains(Object ob) ist nicht immer genannt, warum?

public static List<String> removeDupList(List<String>list, boolean ignoreCase){
    Set<String> set = (ignoreCase?new CaseInsensitiveSet():new LinkedHashSet<String>());
    set.addAll(list);

    List<String> res = new Vector<String>(set);
    return res;
}


public class CaseInsensitiveSet  extends LinkedHashSet<String>{

    @Override
    public boolean contains(Object obj){
        //this not getting called.
        if(obj instanceof String){

            return super.contains(((String)obj).toLowerCase());
        }
        return super.contains(obj);
    }

}
Bitte lernen, wie man code formatieren, anstatt mit <pre> Aussagen.
Warum haben Sie sich wischen meine edits?
Wollen Sie behalten die Reihenfolge der strings in der Liste? Wenn ja, für Duplikate, wollen Sie, um die position des ersten oder letzten auftreten?

InformationsquelleAutor user121196 | 2012-12-26

Schreibe einen Kommentar