Java HashSet 集合

Java HashSet 集合


HashSet 集合

  • 继承自 AbstractCollection

  • 实现了 Collection 接口

  • 底层使用 HashMap 集合,将元素作为 HashMap 集合的键进行存储

  • 迭代器调用的是底层Map的 map.keySet().iterator

  • 存储无序,不能使用索引获取元素

  • 元素不可重复,hash算法和equals方法进行判断元素是否重复,重复则不添加

使用方法

  • 添加元素

    • 示例

      HashSet<Integer> hs = new HashSet<>();
      
      // 添加元素
      hs.add(10);
      hs.add(20);
      System.out.println("add(E e) :" + hs);
      
      // 添加一个集合
      // 由于添加的是集合本身,所有元素重复,添加不进去
      hs.addAll(hs);
      System.out.println("addAll(Collection<? extends E> c) :" + hs);
    • 运行结果
      这里写图片描述

  • 移除元素

    • 示例

      HashSet<Integer> hs = new HashSet<>();
      for (int i = 1; i <= 5; i++) {
          hs.add(i);
      }
      
      hs.remove(Integer.valueOf(3));
      System.out.println("remove(Object o) :" + hs);
      
      // 移除交集元素
      // removeAll(Collection<?> c)
    • 运行结果
      这里写图片描述

  • 判断相关

    • 示例

      HashSet<Integer> hs = new HashSet<>();
      for (int i = 1; i <= 5; i++) {
          hs.add(i);
      }
      
      // 判断集合中是否包含指定元素
      boolean result = hs.contains(Integer.valueOf(3));
      System.out.println("contains(Object o)" + result);
      
      // 判断集合是否为空
      result = hs.isEmpty();
      System.out.println("isEmpty()" + result);
    • 运算结果
      这里写图片描述

遍历集合

  • 将集合转换成数组,然后遍历数组

    • 示例

      HashSet<Integer> hs = new HashSet<>();
      for (int i = 1; i <= 5; i++) {
          hs.add(i);
      }
      
      Integer[] array = hs.toArray(new Integer[hs.size()]);
      for (int i = 0; i < array.length; i++) {
          System.out.println(array[i]);
      }
    • 运行结果
      这里写图片描述

  • foreach (增强for)

    • 示例
      HashSet<Integer> hs = new HashSet<>();
      for (int i = 1; i <= 5; i++) {
          hs.add(i);
      }
      
      Integer[] array = hs.toArray(new Integer[hs.size()]);
      for (int i = 0; i < array.length; i++) {
          System.out.println(array[i]);
      }
  • foreach (增强for)

    • 示例

      HashSet<Integer> hs = new HashSet<>();
      for (int i = 1; i <= 5; i++) {
          hs.add(i);
      }
      
      for(Integer i : hs) {
          System.out.println(i);
      }
    • 运行结果
      这里写图片描述

  • iterator 迭代器

    • 示例

      HashSet<Integer> hs = new HashSet<>();
      for (int i = 1; i <= 5; i++) {
          hs.add(i);
      }
      
      Iterator<Integer> iterator = hs.iterator();
      
      while(iterator.hasNext()) {
          System.out.println(iterator.next());
      }
    • 运行结果
      这里写图片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章