覆盖HashSet中的添加

时间:2019-03-11 02:00:19

标签: java collections hashset

我只是想编写自己的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方法以在添加元素时忽略大小写。

2 个答案:

答案 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>();