我们如何在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

以上是 我们如何在Java中实现自定义HashSet? 的全部内容, 来源链接: utcz.com/z/341260.html

回到顶部