我只是想编写自己的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方法以在添加元素时忽略大小写。
HashSet<String> set = new HashSet<String>();
好吧,你似乎使用默认的HashSet
,也许你的意思
HashSet<String> set = new DuplicateElements<>();
你的错误是这行代码:
HashSet<String> set = new HashSet<String>();
上面的代码仍然使用HashSet的默认实现。 您应该通过执行以下操作来使用自己的HashSet实现:
DuplicateElements<String> set = new DuplicateElements<String>();