覆盖添加标签



我只是想编写自己的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]);
        }
    }
    }
}

我正在尝试在添加元素时修改添加方法以忽略案例。

HashSet<String> set = new HashSet<String>();

好吧,似乎您正在使用默认的HashSet,也许您的意思是

 HashSet<String> set = new DuplicateElements<>();

您的错误是代码行:

HashSet<String> set = new HashSet<String>();

上面的代码仍使用标签的默认实现。
您应该这样做:

来使用自己的标签实现。
DuplicateElements<String> set = new DuplicateElements<String>();

最新更新