Java 集合 HashSet

此类实现Set接口,由哈希表(实际上是HashMap实例)支持。它不能保证集合的迭代顺序;特别是,它不保证订单会随着时间的推移保持不变。该类允许null元素。此类未同步。但是它可以像这样明确地同步:Set s = Collections.synchronizedSet(new HashSet(...));

关于HashSet的注意事项:

  1. HashSet不维护任何顺序,元素将以任何随机顺序返回。
  2. HashSet不允许重复。如果您尝试在 HashSet 中添加重复元素,则旧值将被覆盖。
  3. HashSet允许空值,但是如果插入多个空值,它仍然只返回一个空值。
  4. HashSet是非同步的。
  5. 这个类返回的迭代器是快速失败的,这意味着如果在创建迭代器之后修改了HashSet,迭代器会抛出ConcurrentModificationException,除了迭代器自己的remove方法之外。

HashSet示例

import java.util.HashSet;
public class HashSetExample {
   public static void main(String args[]) {
      // HashSet declaration
      HashSet<String> hset = 
               new HashSet<String>();

      // Adding elements to the HashSet
      hset.add("Apple");
      hset.add("Mango");
      hset.add("Grapes");
      hset.add("Orange");
      hset.add("Fig");
      //Addition of duplicate elements
      hset.add("Apple");
      hset.add("Mango");
      //Addition of null values
      hset.add(null);
      hset.add(null);

      //Displaying HashSet elements
      System.out.println(hset);
    }
}

输出:

[null, Mango, Grapes, Apple, Orange, Fig]

如您所见,输出中不存在所有重复值,包括重复的空值。

HashSet方法:

  1. boolean add(Element e):它将元素 e 添加到列表中。
  2. void clear():它从列表中删除所有元素。
  3. Object clone():此方法返回HashSet的浅表副本。
  4. boolean contains(Object o):它检查指定的Object o是否存在于列表中。如果找到该对象,则返回true,否则返回false
  5. boolean isEmpty():如果Set中没有元素,则返回true
  6. int size():它给出了一个Set的元素个数。
  7. boolean(Object o):它从Set中删除指定的Object o
赞(0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

Java 集合