<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                [TOC] ## **1 什么是Java HashSet** Java HashSet類用于創建使用哈希表進行存儲的集合。它繼承了AbstractSet類并實現Set接口。 Java HashSet類的核心要點是: * HashSet通過使用一種稱為**哈希**的機制來存儲元素。 * HashSet不能存放重復元素。 * HashSet允許為空值。 * HashSet類是非同步的(線程不安全)。 * HashSet元素是無序的。因為元素是根據其哈希碼插入的。 * HashSet方便檢索數據。 * HashSet的初始默認容量為16,而負載因子為0.75。 <br> <br> ## **2 List和Set的區別** List可以包含重復元素,而Set僅包含唯一元素。 <br> <br> ## **3 Java HashSet的層次結構** :-: ![](https://img.kancloud.cn/72/6b/726bd93687af7bff5e67de3cabac6dfb_161x363.png) HashSet類繼承了實現Set接口的AbstractSet類。Set接口繼承Collection和Iterable接口。 <br> <br> ## **4 Java HashSet的語法** ~~~ public class HashSet extends AbstractSet implements Set, Cloneable, Serializable ~~~ <br> <br> ## **5 Java HashSet的構造方法** <br> <br> | 構造方法 | 描述 | | --- | --- | | HashSet() | 用于構造默認的HashSet。 | | HashSet(int capacity) | 用于將HashSet的容量初始化為給定的整數容量。隨著將元素添加到HashSet中,容量會自動增長。 | | HashSet(int capacity, float loadFactor) | 用于將HashSet的容量初始化為給定的整數容量和指定的負載因子。 | | HashSet(Collection c) | 用于通過使用集合來初始化HashSet。 | ## **6 Java HashSet的方法** <br> <br> | 修飾符 | 方法 | 描述 | | --- | --- | --- | | boolean | [add(E e)]() | 如果指定的元素尚不存在,則用于將其添加到此集合中。 | | void | [clear()]() | 用于刪除集合中的所有元素。 | | object | [clone()]() | 用于返回此HashSet實例的淺表副本:元素本身未克隆。 | | boolean | [contains(Object o)]() | 如果此集合包含指定的元素,則用于返回true。 | | boolean | [isEmpty()]() | 如果此集合不包含任何元素,則用于返回true。 | | Iterator | [iterator()]() | 用于返回此集合中元素的迭代器。 | | boolean | [remove(Object o)]() | 如果存在指定元素,則用于從該集合中刪除該元素。 | | int | [size()]() | 用于返回集合中的元素數。 | | Spliterator | [spliterator()]() | Java1.8引入的一種并行遍歷的機制 | <br> <br> ## **7 Java HashSet的例子** HashSet 類位于 java.util 包中,使用前需要引入它,語法格式如下: ~~~ import java.util.HashSet; // 引入 HashSet 類 ~~~ 以下實例我們創建一個 HashSet 對象 set,用于保存字符串元素: ~~~ HashSet<String> set = new HashSet<String>(); ~~~ 讓我們看一個簡單的HashSet示例。注意,元素在無序集合中進行迭代。 ``` import java.util.HashSet; public class day01hashset01{ public static void main(String []args){ HashSet<String> set = new HashSet(); set.add("張小虎"); set.add("王小龍"); set.add("李小白"); set.add("趙小黑"); set.add("劉小紅"); set.add("劉小紅"); // 重復的元素不會被添加 System.out.println(set); } } ``` **運行結果:** 在上面的實例中,劉小紅 被添加了兩次,它在集合中也只會出現一次,因為集合中的每個元素都必須是唯一的。 <br> <br> ## 8 **Java HashSet排除重復元素** ``` import java.util.HashSet; import java.util.Iterator; // 導入Iterator類 public class day02hashset02{ public static void main(String []args){ HashSet<String> set = new HashSet<String>(); set.add("I`m zhangsan"); set.add("I`m yangba"); set.add("I`m maqi"); set.add("I`m zhangliu"); set.add("I`m wangwu"); set.add("I`m lisi"); Iterator<String> it=set.iterator(); // Iterator迭代器 while(itr.hasNext()){ // 使用hasNext()檢查序列中是否還有元素。 System.out.println(it.next()); // 使用next()獲得序列中的下一個元素。 } } } ``` **代碼解析:** 1. **HashSet<String> set = new HashSet<String>();** 我們創建一個 HashSet 對象 set,用于保存字符串元素: 2. **Iterator<String> itr=set.iterator();** 使用方法iterator()要求容器返回一個Iterator。第一次調用Iterator的next()方法時,它返回序列的第一個元素。注意:iterator()方法是java.lang.Iterable接口,被Collection繼承。 3. **while(itr.hasNext())** // 使用hasNext()檢查序列中是否還有元素。如果有則返回true 4. **it.next()** next()獲得序列中的下一個元素。 <br> Iterator這個類,后面接著說 <br> <br> ## **9 Java HashSet刪除元素** ``` import java.util.HashSet; import java.util.Iterator; public class day03hashsetromve{ public static void main(String[] args){ HashSet<String> set = new HashSet<String>(); set.add("baidu"); set.add("alibaba"); set.add("tengx"); set.add("Google"); set.add("IBM"); System.out.println("init data :" + set); // 刪除元素 set.remove("tengx"); // // 刪除元素,刪除成功返回 true,否則為 false System.out.println("use remove after :" + set); HashSet<String> set_one = new HashSet<String>(); set_one.add("new1"); set_one.add("new2"); set.addAll(set_one); System.out.println("to update after data :" + set); // 刪除指定元素 set.removeIf(str->str.contains("new2")); System.out.println("invoking removeIf after :" + set); // 清空所有元素 set.clear(); System.out.println("invoking clear after :" + set); } } ``` **運行結果:** ``` init data :[alibaba, Google, IBM, baidu, tengx] use remove after :[alibaba, Google, IBM, baidu] to update after data :[alibaba, Google, new2, new1, IBM, baidu] invoking removeIf after :[alibaba, Google, new1, IBM, baidu] invoking clear after :[ ] ``` <br> <br> ## **10 用Collection構造HashSet** ``` import java.util.HashSet; import java.util.ArrayList; import java.util.Iterator; public class day04ArrayList_structure_Hash{ public static void main(String[]args){ ArrayList<String> list = new ArrayList<String>(); list.add("tom"); list.add("jack"); list.add("rose"); HashSet<String> set = new HashSet(list); set.add("dear"); Iterator<String> it = set.iterator(); while(it.hasNext()){ System.out.println(it.next()); } } } ``` **運行結果:** tom rose dear jack <br> <br> ## **11:判斷元素是否存在** 我們可以使用 contains() 方法來判斷元素是否存在于集合當中: ``` import java.util.HashSet; public class day05HashSet05{ public static void main(String[]args){ HashSet<String> set = new HashSet<String>(); set.add("w"); set.add("f"); set.add("h"); System.out.println(set.contains("beijing"));// 返回false if(set.contains("beijing")){ System.out.println("存在"); }else{ System.out.println("不存在"); } } } ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看