HashSet.add(Object obj)
更新:は呼び出されないと思いますcontains
。私が欲しいものを実装する方法はありますか (dup 文字列を削除し、ケースを使用して大文字と小文字を無視しSet
ます)?
元の質問: Java で文字列のリストから重複を削除しようとしていますが、次のコードCaseInsensitiveSet.contains(Object ob)
では呼び出されません。なぜですか?
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);
}
}