<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之旅 廣告
                # java 中的`ArrayList` - 集合框架 > 原文: [https://beginnersbook.com/2013/12/java-arraylist/](https://beginnersbook.com/2013/12/java-arraylist/) `Arraylist`類實現`List`接口,它基于`Array`數據結構。由于其提供的功能和靈活性,它被廣泛使用。大多數開發人員選擇`Arraylist`而不是數組,因為它是傳統 java 數組的一個很好的替代品。`ArrayList`是`List`接口的可調整大小的數組實現。它實現了所有可選的列表操作,并允許所有元素,包括`null`。 ![Java ArrayList](https://img.kancloud.cn/0b/20/0b20c4c91c21f4c71811463ea2daa09e_650x300.jpg) ## 為什么`ArrayList`比數組好? 數組的限制是它有一個固定的長度,所以如果它已滿,你不能再添加任何元素,同樣如果有多個元素被刪除,內存消耗將與它不收縮相同。 另一個`ArrayList`可以在添加和刪除元素后動態增長和縮小(參見下圖)。除了這些好處之外,`ArrayList`類還允許我們使用它的預定義方法,這使我們的任務變得簡單。讓我們看一下圖表來理解從`ArrayList`中添加和刪除元素,然后我們將看到這些程序。 **在指定位置的`ArrayList`中添加元素:** ![Java ArrayList - Adding element](https://img.kancloud.cn/e4/73/e4735de4fe6b459a20a06ed2830ca361_650x350.jpg) **從`ArrayList`中刪除元素:** ![ArrayList in Java - Removing Element](https://img.kancloud.cn/47/15/471581d940de5cddd70d0ac195dab6ed_650x326.jpg) > 本指南末尾有一些關于`ArrayList`的教程列表,請參考它以完全理解和學習`ArrayList`概念。 ## 如何創建`ArrayList`? 我們可以通過編寫一個這樣的簡單語句來創建一個`ArrayList`: 此語句創建一個名為`alist`且類型為`String`的`ArrayList`。該類型確定列表將具有哪種類型的元素。由于此列表是`String`類型,因此要添加到此列表的元素將為`String`類型。 ```java ArrayList<String> alist=new ArrayList<String>(); ``` 類似地,我們可以創建接受`int`元素的`ArrayList`。 ```java ArrayList<Integer> list=new ArrayList<Integer>(); ``` ## 如何將元素添加到`ArrayList`? 我們使用`add()`方法向`ArrayList`添加元素,這種方法有幾種變體,我們可以根據需要使用它們。例如:如果我們想在`List`的末尾添加元素,那么就這樣做: ```java alist.add("Steve"); //This will add "Steve" at the end of List ``` 要在`ArrayList`中的指定位置添加元素,我們可以在`add`方法中指定索引,如下所示: ```java alist.add(3, "Steve"); //This will add "Steve" at the fourth position ``` 讓我們寫完整的代碼: ```java import java.util.*; class JavaExample{ public static void main(String args[]){ ArrayList<String> alist=new ArrayList<String>(); alist.add("Steve"); alist.add("Tim"); alist.add("Lucy"); alist.add("Pat"); alist.add("Angela"); alist.add("Tom"); //displaying elements System.out.println(alist); //Adding "Steve" at the fourth position alist.add(3, "Steve"); //displaying elements System.out.println(alist); } } ``` **輸出:** ```java [Steve, Tim, Lucy, Pat, Angela, Tom] [Steve, Tim, Lucy, Steve, Pat, Angela, Tom] ``` **注意:**由于索引從 0 開始,索引 3 將代表第四個位置而不是 3。 ## 如何從`ArrayList`中刪除元素? 我們使用`remove()`方法從`ArrayList`中刪除元素,與`add()`方法相同,此方法也有一些變化。 例如: ```java import java.util.*; class JavaExample{ public static void main(String args[]){ ArrayList<String> alist=new ArrayList<String>(); alist.add("Steve"); alist.add("Tim"); alist.add("Lucy"); alist.add("Pat"); alist.add("Angela"); alist.add("Tom"); //displaying elements System.out.println(alist); //Removing "Steve" and "Angela" alist.remove("Steve"); alist.remove("Angela"); //displaying elements System.out.println(alist); //Removing 3rd element alist.remove(2); //displaying elements System.out.println(alist); } } ``` **輸出:** ```java [Steve, Tim, Lucy, Pat, Angela, Tom] [Tim, Lucy, Pat, Tom] [Tim, Lucy, Tom] ``` ## 迭代`ArrayList` 在上面的例子中,我們只是通過引用`ArrayList`實例來顯示`ArrayList`元素,這絕對不是顯示元素的正確方法。顯示元素的正確方法是使用像這樣的高級`for`循環。 ```java import java.util.*; class JavaExample{ public static void main(String args[]){ ArrayList<String> alist=new ArrayList<String>(); alist.add("Gregor Clegane"); alist.add("Khal Drogo"); alist.add("Cersei Lannister"); alist.add("Sandor Clegane"); alist.add("Tyrion Lannister"); //iterating ArrayList for(String str:alist) System.out.println(str); } } ``` **輸出:** ```java Gregor Clegane Khal Drogo Cersei Lannister Sandor Clegane Tyrion Lannister ``` ## Java 中的`ArrayList`示例 此示例演示如何從`ArrayList`創建,初始化,添加和刪除元素。在這個例子中,我們有一個類型為`String`的`ArrayList`。我們使用`add(String E)`方法在`ArrayList`中添加了 5 個`String`元素,此方法在`ArrayList`的末尾添加了元素。 然后我們使用方法`add(int index,String E)`在`ArrayList`中添加另外兩個元素,此方法在指定的索引處添加指定的元素,索引 0 表示第一個位置,1 表示第二個位置。 然后我們從`ArrayList`中刪除元素`"Chaitanya"`和`"Harry"`,然后我們使用方法`remove(int index)`刪除`ArrayList`的第二個元素。由于我們已將索引指定為 1(`remove(1)`),因此它將刪除第二個元素。 ```java import java.util.*; public class JavaExample { public static void main(String args[]) { /* Creating ArrayList of type "String" which means * we can only add "String" elements */ ArrayList<String> obj = new ArrayList<String>(); /*This is how we add elements to an ArrayList*/ obj.add("Ajeet"); obj.add("Harry"); obj.add("Chaitanya"); obj.add("Steve"); obj.add("Anuj"); // Displaying elements System.out.println("Original ArrayList:"); for(String str:obj) System.out.println(str); /* Add element at the given index * obj.add(0, "Rahul") - Adding element "Rahul" at first position * obj.add(1, "Justin") - Adding element "Justin" at second position */ obj.add(0, "Rahul"); obj.add(1, "Justin"); // Displaying elements System.out.println("ArrayList after add operation:"); for(String str:obj) System.out.println(str); //Remove elements from ArrayList like this obj.remove("Chaitanya"); //Removes "Chaitanya" from ArrayList obj.remove("Harry"); //Removes "Harry" from ArrayList // Displaying elements System.out.println("ArrayList after remove operation:"); for(String str:obj) System.out.println(str); //Remove element from the specified index obj.remove(1); //Removes Second element from the List // Displaying elements System.out.println("Final ArrayList:"); for(String str:obj) System.out.println(str); } } 輸出: ``` ```java Original ArrayList: Ajeet Harry Chaitanya Steve Anuj ArrayList after add operation: Rahul Justin Ajeet Harry Chaitanya Steve Anuj ArrayList after remove operation: Rahul Justin Ajeet Steve Anuj Final ArrayList: Rahul Ajeet Steve Anuj ``` ## `ArrayList`類的方法 在上面的例子中,我們使用了`add()`和`remove()`等方法。但是有許多方法可以直接使用`ArrayList`類的對象。我們來討論一下`ArrayList`類的幾個重要方法。 1)`add(Object o)`:此方法向`arraylist`添加一個對象`o`。 ```java obj.add("hello"); ``` 這個語句會在最后一個位置的`arraylist`中添加一個字符串`hello`。 2) `add(int index, Object o)`:它將對象`o`添加到給定索引處的`ArrayList`中。 ```java obj.add(2, "bye"); ``` 它將字符串再見添加到`ArrayList`的第二個索引(`ArrayList`以索引 0 開頭的第三個位置)。 3)`remove(Object o)`:從`ArrayList`中刪除對象`o`。 ```java obj.remove("Chaitanya"); ``` 該語句將從`ArrayList`中刪除字符串`"Chaitanya"`。 4)`remove(int index)`:從給定索引中刪除元素。 ```java obj.remove(3); ``` 它將刪除索引 3 的元素(列表的第 4 個元素 - 列表以 0 開頭)。 5)`set(int index, Object o)`:用于更新元素。它用對象`o`替換指定索引處的元素。 ```java obj.set(2, "Tom"); ``` 它將使用值`Tom`替換第 3 個元素(`index = 2`是第 3 個元素)。 6)`int indexOf(Object o)`:給出對象`o`的索引。如果在列表中找不到該元素,則此方法返回值 -1。 ```java int pos = obj.indexOf("Tom"); ``` 這將給出列表中字符串`Tom`的索引??(位置)。 7)`Object get(int index)`:返回列表對象,該對象出現在指定的索引處。 ```java String str= obj.get(2); ``` 函數`get`將返回存儲在第 3 個位置(索引 2)的字符串,并將分配給字符串`"str"`。我們已將返回的值存儲在字符串變量中,因為在我們的示例中,我們已經定義了`ArrayList`是`String`類型。如果您有整數`ArrayList`,則返回的值應存儲在整數變量中。 8)`int size()`:它給出了`ArrayList`的大小 - 列表元素的數量。 ```java int numberofitems = obj.size(); ``` 9)`boolean contains(Object o)`:它檢查給定對象`o`是否存在于`ArrayList`中,如果它在那里則返回`true`,否則返回`false`。 ```java obj.contains("Steve"); ``` 如果字符串`"Steve"`出現在列表中,它將返回`true`,否則我們將得到`false`。 10)`clear()`:**它用于一次性刪除`ArrayList`的所有元素。下面的代碼將刪除其對象為`obj`的`ArrayList`的所有元素。 ```java obj.clear(); ``` ## Java `ArrayList`教程 以下是 beginnersbook.com 上發布的`ArrayList`教程列表。 #### `ArrayList`基礎知識 * [初始化`ArrayList`](https://beginnersbook.com/2013/12/how-to-initialize-an-arraylist/) * [遍歷`ArrayList`](https://beginnersbook.com/2013/12/how-to-loop-arraylist-in-java/) * [查找`ArrayList`的長度](https://beginnersbook.com/2013/12/how-to-find-length-of-arraylist-in-java/) #### 排序 * [排序`ArrayList`](https://beginnersbook.com/2013/12/how-to-sort-arraylist-in-java/) * [按降序排序`ArrayList`](https://beginnersbook.com/2013/12/sort-arraylist-in-descending-order-in-java/) * [使用`Comparable`和`Comparator`排序`ArrayList`的對象](https://beginnersbook.com/2013/12/java-arraylist-of-object-sort-example-comparable-and-comparator/) #### 添加/刪除 * [將元素添加到`ArrayList`](https://beginnersbook.com/2013/12/java-arraylist-add-method-example/) * [在`ArrayList`的特定索引處添加元素](https://beginnersbook.com/2013/12/java-arraylist-addint-index-e-element-example/) * [將`Collection`元素追加到`ArrayList`](https://beginnersbook.com/2013/12/java-arraylist-addallcollection-c-method-example/) * [將所有列表元素復制到`ArrayList`](https://beginnersbook.com/2013/12/how-to-copy-and-add-all-list-elements-to-arraylist-in-java/) * [將所有集合元素插入`ArrayList`](https://beginnersbook.com/2013/12/java-arraylist-addall-int-index-collection-c-method-example/) 中的指定位置 * [從`ArrayList`](https://beginnersbook.com/2013/12/java-arraylist-remove-method-example/) 中的指定索引中刪除元素 * [從`ArrayList`](https://beginnersbook.com/2013/12/java-arraylist-removeobject-method-example/) 中刪除指定的元素 #### 獲取/搜索 * [獲取`ArrayList`的子列表](https://beginnersbook.com/2013/12/how-to-get-sublist-of-an-arraylist-with-example/) * [獲取`ArrayList`中元素的最后一次出現的索引](https://beginnersbook.com/2013/12/java-arraylist-lastindexofobject-0bj-method-example/) * [從`ArrayList`獲取元素](https://beginnersbook.com/2013/12/java-arraylist-get-method-example/) * [獲取`ArrayList`中元素第一次出現的索引](https://beginnersbook.com/2013/12/java-arraylist-indexof-method-example/) * [檢查`ArrayList`中是否存在元素](https://beginnersbook.com/2013/12/java-arraylist-contains-method-example/) #### 關于`ArrayList`的其他教程 * [比較兩個`ArrayList`](https://beginnersbook.com/2013/12/how-to-compare-two-arraylist-in-java/) * [同步`ArrayList`](https://beginnersbook.com/2013/12/how-to-synchronize-arraylist-in-java-with-example/) * [在`ArrayList`中交換兩個元素](https://beginnersbook.com/2013/12/how-to-swap-two-elements-in-an-arraylist/) * [覆蓋`toString()`方法 - `ArrayList`](https://beginnersbook.com/2013/12/how-to-override-tostring-method-for-arraylist-in-java/) * [序列化`ArrayList`](https://beginnersbook.com/2013/12/how-to-serialize-arraylist-in-java/) * [連接兩個`ArrayList`](https://beginnersbook.com/2013/12/how-to-joincombine-two-arraylists-in-java/) * [克隆`ArrayList`到另一個`ArrayList`](https://beginnersbook.com/2013/12/how-to-clone-an-arraylist-to-another-arraylist/) * [使`ArrayList`為空](https://beginnersbook.com/2013/12/how-to-empty-an-arraylist-in-java/) * [檢查`ArrayList`是否為空](https://beginnersbook.com/2013/12/java-arraylist-isempty-method-example/) * [修剪`ArrayList`的大小](https://beginnersbook.com/2013/12/java-arraylist-trimtosize-method-example/) * [替換`ArrayList`中現有元素的值](https://beginnersbook.com/2013/12/java-arraylist-set-method-example/) * [增加`ArrayList`的容量(大小)](https://beginnersbook.com/2013/12/java-arraylist-ensurecapacity-method-example/) #### 轉換: * [將`LinkedList`轉換為`ArrayList`](https://beginnersbook.com/2014/07/java-convert-a-linkedlist-to-arraylist/) * [將`Vector`轉換為`ArrayList`](https://beginnersbook.com/2014/07/java-convert-vector-to-arraylist-example/) * [將`ArrayList`轉換為字符串數組](https://beginnersbook.com/2013/12/how-to-convert-arraylist-to-string-array-in-java/) * [將數組轉換為`ArrayList`](https://beginnersbook.com/2013/12/how-to-convert-array-to-arraylist-in-java/) * [將`HashSet`轉換為`ArrayList`](https://beginnersbook.com/2014/08/convert-hashset-to-a-list-arraylist/) #### 區別: * [`ArrayList` vs `Vector`](https://beginnersbook.com/2013/12/difference-between-arraylist-and-vector-in-java/) * [`ArrayList` vs `HashMap`](https://beginnersbook.com/2013/12/difference-between-arraylist-and-hashmap-in-java/) * [`ArrayList` vs `LinkedList`](https://beginnersbook.com/2013/12/difference-between-arraylist-and-linkedlist-in-java/) #### 參考 * [`ArrayList`文檔](https://docs.oracle.com/javase/7/docs/api/java/util/ArrayList.html)
                  <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>

                              哎呀哎呀视频在线观看