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

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                [TOC] ## **第1部分 ArrayList簡介** ArrayList是基于數組實現的,是一個動態數組,其容量能自動增長,類似于C語言中的動態申請內存,動態增長內存。 <br> ArrayList不是線程安全的,只能在單線程環境下,多線程環境下可以考慮用collections.synchronizedList(List l)函數返回一個線程安全的ArrayList類,也可以使用concurrent并發包下的CopyOnWriteArrayList類。 <br> ArrayList實現了Serializable接口,因此它支持序列化,能夠通過序列化傳輸,實現了RandomAccess接口,支持快速隨機訪問,實際上就是通過下標序號進行快速訪問,實現了Cloneable接口,能被克隆。 <br> <br> ### **ArrayList與Collection關系如下圖**: :-: ![](https://img.kancloud.cn/eb/ba/ebba2c7a28a5a40b645abd803e110c31_480x414.png) <br> ### **ArrayList實現原理:** :-: ![](https://img.kancloud.cn/87/23/872301706ef3a9b147ff947f5e8837c6_548x354.png) <br> <br> ### **ArrayList基本語法:** `ArrayList 類位于 java.util 包中,使用前需要引入它,語法格式如下:` ``` import java.util.ArrayList; // 引入 ArrayList 類 ``` ``` ArrayList<E> objectName =new ArrayList<>();  // 初始化 ``` * **E**: 泛型數據類型,用于設置 objectName 的數據類型,**只能為引用數據類型**。 * **objectName**: 對象名。 ArrayList 是一個數組隊列,提供了相關的添加、刪除、修改、遍歷等功能。 <br> <br> ## **第2部分 ArrayList添加元素** ArrayList 類提供了很多有用的方法,添加元素到 ArrayList 可以使用 add() 方法: ``` import java.util.ArrayList; public class day01Arraylist01{ public static void main(String []agrs){ ArrayList<String> sites = new ArrayList<String>(); sites.add("Python人生苦短"); sites.add("java一切皆對象"); sites.add("Golang你倆說的對"); System.out.println(sites); } } ``` **運行結果:** `[Python人生苦短, java一切皆對象, Golang你倆說的對]` <br> <br> ## **第3部分 ArrayList訪問元素** 訪問 ArrayList 中的元素可以使用 get() 方法: ``` import java.util.ArrayList; public class day01Arraylist01{ public static void main(String []agrs){ ArrayList<String> sites = new ArrayList<String>(); sites.add("Python人生苦短"); sites.add("java一切皆對象"); sites.add("Golang你倆說的對"); System.out.println(sites); // 訪問第二個元素 System.out.println(sites.get(2)); } } ``` **運行結果:** Golang你倆說的對 **注意**:數組的索引值從 0 開始。 <br> <br> ## **第5部分 toArray()修改元素** 如果要修改 ArrayList 中的元素可以使用 set() 方法: ``` import java.util.ArrayList; public class day01Arraylist01{ public static void main(String []agrs){ ArrayList<String> sites = new ArrayList<String>(); sites.add("Python人生苦短"); sites.add("java一切皆對象"); sites.add("Golang你倆說的對"); sites.set(1,"MYSQL");// 第一個參數為索引位置,第二個是要修改的值 System.out.println(sites); } } ``` **運行結果:** `[Python人生苦短, MYSQL, Golang你倆說的對]` <br> <br> ## **第6部分 ArrayList刪除元素** 如果要刪除 ArrayList 中的元素可以使用 remove() 方法: ``` import java.util.ArrayList; public class day01Arraylist01{ public static void main(String []agrs){ ArrayList<String> sites = new ArrayList<String>(); sites.add("Python人生苦短"); sites.add("java一切皆對象"); sites.add("Golang你倆說的對"); sites.remove(1); // 通過索引刪除元素,這里刪除的是第一個 System.out.println(sites); } } ``` **運行結果:** `[Python人生苦短, Golang你倆說的對]` <br> <br> ## **第6部分 ArrayList示例** ### 計算大小 如果要計算 ArrayList 中的元素數量可以使用 size() 方法: ``` import java.util.ArrayList; public class day01Arraylist01{ public static void main(String []agrs){ ArrayList<String> sites = new ArrayList<String>(); sites.add("Python人生苦短"); sites.add("java一切皆對象"); sites.add("Golang你倆說的對"); System.out.println(sites.size()); } } ``` **運行結果:** 3 <br> <br> ### 迭代數組列表 我們可以使用 for 來迭代數組列表中的元素: ``` import java.util.ArrayList; public class day01Arraylist01{ public static void main(String []agrs){ ArrayList<String> sites = new ArrayList<String>(); sites.add("Python人生苦短"); sites.add("java一切皆對象"); sites.add("Golang你倆說的對"); for(int i = 0;i < sites.size();i++){ System.out.println(sites.get(i)); } } } ``` **運行結果:** Python人生苦短 java一切皆對象 Golang你倆說的對 <br> 也可以使用 for-each 來迭代元素: ``` import java.util.ArrayList; public class day01Arraylist01{ public static void main(String []agrs){ ArrayList<String> sites = new ArrayList<String>(); sites.add("Python人生苦短"); sites.add("java一切皆對象"); sites.add("Golang你倆說的對"); for (String i : sites){ System.out.println("我是each"); System.out.println(i); } } } ``` **運行結果:** 我是each Python人生苦短 我是each java一切皆對象 我是each Golang你倆說的對 <br> <br> ### 其他的引用類型 ArrayList 中的元素實際上是對象,在以上實例中,數組列表元素都是字符串 String 類型。 <br> 如果我們要存儲其他類型,而 只能為引用數據類型,這時我們就需要使用到基本類型的包裝類。 <br> ### 基本類型對應的包裝類表如下: | 基本類型 | 引用類型 | | --- | --- | | boolean | Boolean | | byte | Byte | | short | Short | | int | Integer | | long | Long | | float | Float | | double | Double | | char | Character | 此外,BigInteger、BigDecimal 用于高精度的運算,BigInteger 支持任意精度的整數,也是引用類型,但它們沒有相對應的基本類型。 ``` ArrayList<Integer> li=new Arraylist<>(); // 存放整數元素 ArrayList<Character> li=new Arraylist<>(); // 存放字符元素 ``` <br> <br> 以下實例使用 ArrayList 存儲數字(使用 Integer 類型): ``` import java.util.ArrayList; public class day02ArrayList02{ public static void main(String [] args){ ArrayList<Integer> nums = new ArrayList<Integer>(); nums.add(10); nums.add(9); nums.add(8); nums.add(7); nums.add(6); nums.add(6); for(int i : nums){ System.out.println(i); } } } ``` **運行結果:** 10 9 8 7 6 6 <br> ### ArrayList 排序 Collections 類也是一個非常有用的類,位于 java.util 包中,提供的 sort() 方法可以對字符或數字列表進行排序。 以下實例對數字進行排序: ``` import java.util.ArrayList; import java.util.Collections; // 引入 Collections 類 public class day02ArrayList02{ public static void main(String [] args){ ArrayList<Integer> nums = new ArrayList<Integer>(); nums.add(10); nums.add(9); nums.add(12); nums.add(7); nums.add(6); nums.add(6); Collections.sort(nums);// 排序 for(int i : nums){ System.out.println(i); } } } ``` **運行結果:** 6 6 7 9 10 12 <br> 以下實例對字母進行排序: ``` import java.util.ArrayList; import java.util.Collections; // 引入 Collections 類 public class day02ArrayList02{ public static void main(String [] args){ ArrayList<String> nums = new ArrayList<String>(); nums.add("Golang"); nums.add("java"); nums.add("Python"); nums.add("C++"); nums.add("C"); nums.add("JS"); Collections.sort(nums);// 排序 for(String i : nums){ System.out.println(i); } } } ``` **運行結果:** C C++ Golang JS Python java <br> <br> ## **第7部分 ArrayList 方法集合** Java ArrayList 常用方法列表如下: | 方法 | 描述 | | --- | --- | | [add()]() | 將元素插入到指定位置的 arraylist 中 | | [addAll()]() | 添加集合中的所有元素到 arraylist 中 | | [clear()]() | 刪除 arraylist 中的所有元素 | | [clone()]() | 復制一份 arraylist | | [contains()]() | 判斷元素是否在 arraylist | | [get()]() | 通過索引值獲取 arraylist 中的元素 | | [indexOf()]() | 返回 arraylist 中元素的索引值 | | [removeAll()]() | 刪除存在于指定集合中的 arraylist 里的所有元素 | | [remove()]() | 刪除 arraylist 里的單個元素 | | [size()]() | 返回 arraylist 里元素數量 | | [isEmpty()]() | 判斷 arraylist 是否為空 | | [subList()]() | 截取部分 arraylist 的元素 | | [set()]() | 替換 arraylist 中指定索引的元素 | | [sort()]() | 對 arraylist 元素進行排序 | | [toArray()]() | 將 arraylist 轉換為數組 | | [toString()]() | 將 arraylist 轉換為字符串 | | [ensureCapacity]() | 設置指定容量大小的 arraylist | | [lastIndexOf()]() | 返回指定元素在 arraylist 中最后一次出現的位置 | | [retainAll()]() | 保留 arraylist 中在指定集合中也存在的那些元素 | | [containsAll()]() | 查看 arraylist 是否包含指定集合中的所有元素 | | [trimToSize()]() | 將 arraylist 中的容量調整為數組中的元素個數 | | [removeRange()]() | 刪除 arraylist 中指定索引之間存在的元素 | | [replaceAll()]() | 將給定的操作內容替換掉數組中每一個元素 | | [removeIf()]() | 刪除所有滿足特定條件的 arraylist 元素 | | [forEach()]() | 遍歷 arraylist 中每一個元素并執行特定操作 | <br> <br> ### 1:clear( )方法實例演示 clear() 方法用于刪除動態數組中的所有元素。 clear() 方法的語法為: ``` arraylist.clear() ``` **注:** arraylist 是 ArrayList 類的一個對象。 **參數說明:** * 無 ``` import java.util.ArrayList; public class day03ArrayList03{ public static void main(String []args){ // 創建一個數組 ArrayList<String> nums = new ArrayList<>(); nums.add("Python"); nums.add("Java"); nums.add("Golnag"); nums.add("C++"); System.out.println("It常用語言有:"+nums); // 刪除所有元素 nums.clear(); System.out.println("clear后的結果是:"+nums); } } ``` **運行結果:** `It常用語言有:[Python, Java, Golnag, C++]` `clear后的結果是:[ ]` <br> 在上面的實例中,我們創建了一個名為 nums 的動態數組。該動態數組存儲這編程語言的名稱。 實例最后,我們使用 clear() 方法刪除了動態數組 nums 的所有元素。 <br> <br> ### 2:clear() 與 removeAll( ) 方法 接下來我們正好可引入另一個方法[isEmpty()]()判斷是否為空,這次刪除是使用 removeAll 在動態數組中還提供了 removeAll() 方法,它同樣能刪除數組中的所有元素,如下: ``` import java.util.ArrayList; public class day04ArrayList04{ public static void main(String[]args){ // 創建一個動態數組 ArrayList <Integer> nums = new ArrayList<>(); // 添加元素 nums.add(12); nums.add(43); nums.add(21); nums.add(54); System.out.println("removeAll() 前:" + nums); // 刪除所有元素 nums.removeAll(nums); System.out.println("removeAll() 后:" + nums); if(nums.isEmpty()){//判斷是否為空 System.out.println("你盡然把它全刪了!嗚嗚嗚"); } } } ``` **運行結果:** removeAll() 前:[12, 43, 21, 54] removeAll() 后:[] 你盡然把它全刪了!嗚嗚嗚 我們創建了一個名為 nums 的動態數組,然后使用 removeAll() 方法刪除數組中所有的元素。 removeAll() 和 clear() 方法功能都是一樣都。但是 clear() 方法的比 removeAll() 更常被用到,因為 clear() 比 removeAll() 更快,更高效。 <br> <br> ### 3:remove()方法案例演示 remove() 方法用于刪除動態數組里的單個元素。 remove() 方法的語法為: // 刪除指定元素 ``` arraylist.remove(Object obj) ``` // 刪除指定索引位置的元素 ``` arraylist.remove(int index) ``` **注:** arraylist 是 ArrayList 類的一個對象。 **參數說明:** * obj - 要刪除的元素 * index - 要刪除元素索引值 如果 obj 元素出現多次,則刪除在動態數組中最第一次出現的元素。 <br> #### 3.1:返回值 如果傳入元素,刪除成功,則返回 true。 如果傳入索引值,則返回刪除的元素。 注意:如果指定的索引超出范圍,則該方法將拋出 IndexOutOfBoundsException 異常。 <br> #### 3.2:實例——從數組中刪除指定的元素:【數字】 ``` import java.util.ArrayList; public class day04ArrayList04{ public static void main(String[]args){ // 創建一個動態數組 ArrayList <Integer> nums = new ArrayList<>(); // 添加元素 nums.add(12); nums.add(43); nums.add(21); nums.add(54); System.out.println("remove() 前:" + nums); // 刪除單個元素,通過下標 nums.remove(1); System.out.println("remove() 后:" + nums); if(nums.isEmpty()){//判斷是否為空 System.out.println("你盡然把它全刪了!嗚嗚嗚"); } } } ``` **運行結果:** remove() 前:[12, 43, 21, 54] remove() 后:[12, 21, 54] <br> #### 3.3:實例——從數組中刪除指定的元素:【字母】 ``` import java.util.ArrayList; public class day04ArrayList04{ public static void main(String[]args){ // 創建一個動態數組 ArrayList <String> nums = new ArrayList<>(); // 添加元素 nums.add("一"); nums.add("二"); nums.add("三"); nums.add("四"); System.out.println("remove() 前:" + nums); // 刪除單個元素,通過下標 nums.remove("四"); System.out.println("remove() 后:" + nums); } } ``` **運行結果:** remove() 前:[一, 二, 三, 四] remove() 后:[一, 二, 三] <br> <br> #### 3.4:實例——刪除第一次出現的元素: ``` import java.util.ArrayList; class day05ArrayList05{ public static void main(String[]args){ ArrayList <Integer> nums = new ArrayList<>(); nums.add(23); nums.add(56); nums.add(45); nums.add(23); nums.add(78); nums.add(98); nums.add(34); System.out.println("init array :" + nums); // 刪除第一個次出現的23的元素 boolean result = nums.remove(Integer.valueOf(23)); System.out.println("23被刪除了嗎?" + result); System.out.println("使用remove后:" + nums); } } ``` **運行結果:** init array :[23, 56, 45, 23, 78, 98, 34] 23被刪除了嗎?true 使用remove后:[56, 45, 23, 78, 98, 34] <br> 我們創建了一個名為 nums 的動態數組。在這個數組中,元素 23 出現了兩次,注意這一行: ~~~ nums.remove(Integer.valueOf(23)) ~~~ Integer.valueOf()將 23 從 int 類型轉變成一個 Integer 對象。因為 remove() 方法僅將對象作為其參數。 remove()用于刪除第一個出現在數組中的 23。 <br> <br> ### 4:set() 方法 set() 方法用于替換動態數組中指定索引的元素。 set() 方法的語法為: ``` arraylist.set(int index, E element) ``` **注:** arraylist 是 ArrayList 類的一個對象。 **參數說明:** * index - 索引位置 * element - 將在 index 位置替換進去的新元素 <br> #### 4.1:返回值 返回之前在 index 位置的元素 。 如果 index 值超出范圍,則拋出 IndexOutOfBoundsException 異常。 <br> #### 4.2:實例 替換動態數組中的某元素: ``` importjava.util.ArrayList; classMain{ publicstaticvoidmain(String[]args){ // 創建一個動態數組 ? ? ? ? ArrayList nums = new ArrayList<>(); ? ? ? ? sites.add("hhh"); ? ? ? ? sites.add("www"); ? ? ? ? sites.add("ooo"); System.out.println(">>>: "+ nums); // 索引 2 的元素被替換 Stringelement=nums.set(2,"Wiki"); System.out.println("替換后: "+nums); System.out.println("被替換的元素: "+element); } } ``` 在上面的實例中,我們創建了一個名為 nums 的數組,set() 方法將索引位置為 2 的 ooo 替換成 Wiki。 注意:如果不確定元素的索引值,可以使用 ArrayList indexOf() 方法。 ### ArrayList set() 與 add()方法 add() 和 set() 方法的語法看起來非常相似。 ``` // add() 的語法 arraylist.add(int index, E element) // set() 的語法 arraylist.set(int index, E element) ``` 這兩種方法都將新元素添加到數組中。 但是,它們之間有很大的不同: * set() 方法在指定位置對元素進行更新。 * add() 方法將元素插入到指定位置的動態數組中。 ``` import java.util.ArrayList; class Main{ public static void main(String[]args){ // 創建一個動態數組 ? ? ? ? ArrayList nums = new ArrayList<>(); ? ? ? ? sites.add("hhh"); ? ? ? ? sites.add("www"); ? ? ? ? sites.add("ooo"); System.out.println(">>>: "+nums); // 創建另一個 nums2 動態數組 ? ? ? ? ArrayList nums2 = new ArrayList<>(); // 將 nums 中的數組元素添加到 nums2 ? ? ? ? nums2.addAll(nums); System.out.println("ArrayList: " + nums); // 使用set() ? ? ? ? sites.set(1,"Wiki"); System.out.println("ArrayList 使用 set() 后: "+ nums); //使用 add() ? ? ? ? nums2.add(1,"Wiki"); System.out.println("ArrayList 使用 add() 后: "+nums2); } } ```
                  <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>

                              哎呀哎呀视频在线观看