<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>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                [TOC] >[success] # Collection 1. `java.util.Collection`接口是**List**接口、**Queue**接口以及**Set**接口的父接口,因**此該接口里定義的方法既可用于操作List集合,也可用于操作Queue集合和Set集合** ![](https://img.kancloud.cn/0a/5c/0a5c23bf055f7fc7d08b107732f3e26d_1027x393.png) |方法聲明 |功能介紹| |--|--| |boolean add(E e); |向集合中添加對象| |boolean addAll(Collection<? extends E> c)|用于將參數指定集合c中的所有元素添加到當前集合中| |boolean contains(Object o); |判斷是否包含指定對象| |boolean containsAll(Collection<?> c) |判斷是否包含參數指定的所有對象| |boolean retainAll(Collection<?> c) |保留當前集合中存在且參數集合中存在的所有對象| |boolean remove(Object o); |從集合中刪除對象| |boolean removeAll(Collection<?> c) |從集合中刪除參數指定的所有對象| |void clear(); |清空集合| |int size();| 返回包含對象的個數| |boolean isEmpty(); |判斷是否為空| |boolean equals(Object o)| 判斷是否相等| |int hashCode() |獲取當前集合的哈希碼值| |Object[] toArray()| 將集合轉換為數組| |Iterator iterator()| 獲取當前集合的迭代器| * 因為Collection 是 最上級接口 因此 `ArrayList `類也具備接口方法實現,所以下面案例用`ArrayList ` 作為案例使用 接口方法 >[danger] ##### add/ addAll ~~~ import java.util.ArrayList; import java.util.Collection; public class CollectionTest { public static void main(String[] args) { // Collection c1 = new Collection(); // 接口不能實例化,也就是不能創建對象 // ArrayList 實現了接口 Collection 因此接口類型的引用指向實現類的對象,形成了多態 Collection arr = new ArrayList(); // 自動調用toString方法,調用ArrayList類中的toString方法,默認打印格式為:[元素值1, 元素值2, ...] // 質上就是打印集合中的每個對象,也就是讓每個對象調用對應類的toString方法 System.out.println(arr); // [] // 1. ----- 使用add向集合中添加元素,add 添加需要是 對象類型 ,添加成功后返回布爾類型 --------------- boolean b1 = false; arr.add(new String("w")); arr.add(Integer.valueOf(10)); arr.add(100); // 自動裝箱機制 將基本類型變成對象 // arr.add(new Person("name")); // 添加一些自定義類對象 b1 = arr.add("y"); // 保存常量字符串 System.out.println(b1); // true int[] ls = { 1, 2, 3, 4, 5 }; arr.add(ls); // Person 想讓自定義對象打印格式自定需要重寫toString 方法 // 沒有重新數組的toString 方法 因此打印出來是數組的內存地址 System.out.println(arr); // [w, 10, 100, y, [I@123772c4] // 2. -------是用addAll 將一個集合中的值都添加到另一個集合中 -------- Collection arr1 = new ArrayList(); arr1.add("c"); arr1.addAll(arr); System.out.println(arr1); // [c, w, 10, 100, y, [I@123772c4] } } ~~~ >[danger] ##### contains/ containsAll 1. `contains` 原理`Objects.equals(o, e)`,其中**o代表contains方法的形式參數,e代表集合中的每個元素**,對象與集合中已有對象的地址相同 或對象不為空,則對象調用equals方法與集合中已有元素相等(比較的方式調用Objects中的equals方法,自定義對象可以重寫equals方法) ~~~ public static boolean equals(Object a, Object b) { return (a == b) || (a != null && a.equals(b)); } ~~~ ~~~ import java.util.ArrayList; import java.util.Collection; public class CollectionTest { public static void main(String[] args) { Collection arr = new ArrayList(); arr.add("2"); arr.add(2); // contains 判斷集合中是否包含參數指定的單個元素 boolean b1 = arr.contains("2"); System.out.println(b1); // true // 判斷當前集合中是否包含參數指定集合的所有元素 Collection arr1 = new ArrayList(); arr1.add(2); // arr["2" , 2] 中的元素是否都存在arr1 [2]中 System.out.println(arr1.containsAll(arr)); // false // arr1 [ 2] 中的元素是否都存在arr ["2" , 2] 中 System.out.println(arr.containsAll(arr1)); // true } } ~~~ >[danger] ##### retainAll -- 交集 1. 計算兩個集合的交集并保留到當前集合中,如果生成新的集合返回`true `否則`false` ~~~ import java.util.ArrayList; import java.util.Collection; public class CollectionTest { public static void main(String[] args) { Collection arr = new ArrayList(); arr.add(1); Collection arr1 = new ArrayList(); arr1.add(2); arr1.add(3); arr1.add(4); boolean b = arr.retainAll(arr1); System.out.println(b); // true 沒有交集導致arr 被更新為空集合 [] System.out.println(arr); // [] // ------------------------------------ Collection arr2 = new ArrayList(); arr2.add(1); arr2.add(3); Collection arr3 = new ArrayList(); arr3.add(2); arr3.add(3); arr3.add(4); b = arr2.retainAll(arr3); System.out.println(b); // true 沒有交集導致arr 被更新為空集合 [3] System.out.println(arr2); // [3] b = arr3.retainAll(arr3); System.out.println(b); // false 自己和自己交集沒有值改變 } } ~~~ >[danger] ##### remove/removeAll 1. remove方法的工作原理:Objects.equals(o, e) ~~~ import java.util.ArrayList; import java.util.Collection; public class CollectionTest { public static void main(String[] args) { Collection arr = new ArrayList(); arr.add(1); arr.add(12); arr.add(122); // 刪除單個元素 remove方法的工作原理:Objects.equals(o, e) boolean b = arr.remove(1); // 刪除存在返回true System.out.println("b = " + b); // b = true System.out.println("arr = " + arr); // arr = [12, 122] b = arr.remove("one"); // 刪除不存在返回false System.out.println("b = " + b); // false System.out.println("arr = " + arr); // arr = [12, 122] Collection arr1 = new ArrayList(); arr1.add(12); b = arr.removeAll(arr1); System.out.println("b = " + b); // b = true System.out.println("arr = " + arr); // arr = [122] } } ~~~ >[danger] ##### clear / size /isEmpty /equals ~~~ import java.util.ArrayList; import java.util.Collection; public class CollectionTest { public static void main(String[] args) { Collection arr = new ArrayList(); arr.add(1); arr.add(12); arr.add(122); // 是否為空 boolean b = arr.isEmpty(); System.out.println(b); // false // 獲取個數 int size = arr.size(); System.out.println(size); // 3 // 清空集合中的所有元素 arr.clear(); b = arr.isEmpty(); System.out.println(b); // true arr.add(4); arr.add(5); Collection arr1 = new ArrayList(); arr1.add(4); arr1.add(5); // 兩個集合并判斷是否相等 b = arr1.equals(arr); System.out.println(b); // true } } ~~~ >[danger] ##### 集合 數組互相轉換 -- toArray 1. 通常認為:集合是用于取代數組的結構,因為Object 是所有對象父類因此是**Object 數組類型** ~~~ import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; public class CollectionTest { public static void main(String[] args) { Collection arr = new ArrayList(); arr.add(1); arr.add(12); arr.add(122); // 實現集合和數組類型之間的轉換 通常認為:集合是用于取代數組的結構 // 實現集合向數組類型的轉換 Object[] objects = arr.toArray(); System.out.println("數組中的元素有:" + Arrays.toString(objects)); // 數組中的元素有:[1, 12, 122] // 實現數組類型到集合類型的轉換 Collection objects1 = Arrays.asList(objects); System.out.println("集合中的元素有:" + objects1); // 集合中的元素有:[1, 12, 122] } } ~~~
                  <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>

                              哎呀哎呀视频在线观看