Loading...

我们如何在Java中实现自定义HashSet

HashSet实现了不允许重复值的Set接口。HashSet不是同步的,也不是线程安全的。当我们可以向HashSet添加任何重复元素时,add()方法返回false,并且不允许向HashSet添加重复元素。

语法

public class HashSetextends AbstractSetimplements Set, Cloneable, Serializable

在下面的示例中,我们可以实现自定义HashSet

示例

import java.util.*; public class CustomHashSetTest extends AbstractSet {    private HashMapmap = null;    private static final Object tempObject = new Object();    public CustomHashSetTest() {       map = new HashMap<>();    }    public boolean add(Object object) {       return map.put(object, tempObject)==null;    }    public static void main(String[] args) {       CustomHashSetTest test = new CustomHashSetTest();       test.add("India");       test.add("Australia");       test.add("England");       test.add("Australia");       for(Object object : test) {          System.out.println(object.toString());       }    }    @Override    public Iterator iterator() {       return map.keySet().iterator();    }    @Override    public int size() {       return map.size();    } }

输出结果

England Australia India