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());
      }
    • 運行結果
      這裏寫圖片描述

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