我只是想编写自己的HashSet add()实现。该代码不是使用我的实现,而是使用默认的实现。
import java.util.Collection;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
public class DuplicateElements<E> extends HashSet<E>{
@Override
public boolean add(E e) {
System.out.println("Using this");
return super.add(e);
}
public static void main(String[] args) {
String names[] = { "Java", "JavaScript", "Ruby", "C", "Python", "Java", "Python"};
HashSet<String> set = new HashSet<String>();
for (int i = 0; i < names.length; i++) {
boolean isAdded = set.add(names[i]);
if (!isAdded) {
System.out.println("Duplicate Found: "+names[i]);
}
}
}
}
我正在尝试修改add方法以在添加元素时忽略大小写。
答案 0 :(得分:0)
HashSet<String> set = new HashSet<String>();
好吧,看来您使用的是默认的HashSet
,也许您是故意的
HashSet<String> set = new DuplicateElements<>();
答案 1 :(得分:0)
您的错误是以下代码行:
HashSet<String> set = new HashSet<String>();
上面的代码仍然使用HashSet的默认实现。
您应该通过以下方式使用自己的HashSet实现:
DuplicateElements<String> set = new DuplicateElements<String>();