覆盖HashSet中的添加

问题描述 投票:-2回答:2

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

java collections hashset
2个回答
0
投票
HashSet<String> set = new HashSet<String>();

好吧,你似乎使用默认的HashSet,也许你的意思

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

0
投票

你的错误是这行代码:

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

上面的代码仍然使用HashSet的默认实现。 您应该通过执行以下操作来使用自己的HashSet实现:

DuplicateElements<String> set = new DuplicateElements<String>();
© www.soinside.com 2019 - 2024. All rights reserved.