Java入門系列:執行個體講解ArrayList用法,執行個體講解arraylist

來源:互聯網
上載者:User

Java入門系列:執行個體講解ArrayList用法,執行個體講解arraylist

本文通過執行個體講解Java中如何使用ArrayList類。

Java.util.ArrayList類是一個動態數群組類型,也就是說,ArrayList對象既有數組的特徵,也有鏈表的特徵。可以隨時從鏈表中添加或刪除一個元素。ArrayList實現了List介面。

大家知道,數組是靜態,數組被初始化之後,數組長度就不能再改變了。ArrayList是可以動態改變大小的。那麼,什麼時候使用Array(數組),什麼時候使用ArrayList?答案是:當我們不知道到底有多少個資料元素的時候,就可使用ArrayList;如果知道資料集合有多少個元素,就用數組。

1.ArrayList建構函式

ArrayList類支援3個構造方法。

  • Arraylist()

這個構造方法構造了一個空的鏈表。

  • ArrayList(Collection<? extends E> c)

這個構造方法構造了一個包含指定元素集合的鏈表,注意,這裡的字元E是一個標記,用來表示集合中元素的類型。至於具體是什麼類型,需要你在使用這個構造方法的時候來指定。

  • ArrayList(int initialCapacity)

這是第三個構造方法,構造了一個指定大小但內容為空白的鏈表。initialCapacity參數就是初始容量大小。

舉例來說,如果你要建立一個空的數組鏈表,用來存放String類型的對象,那麼你可以像下面這樣做:

ArrayList<String> list = new ArrayList<String>();

如果你需要建立一個指定初始容量的數組鏈表,你可以像下面這樣做:

ArrayList<Integer> list = new ArrayList<Integer>(7);

注意:ArrayList類只支援物件類型,不支援 基礎資料類型。就是說ArrayList對象只能存放對象,不能存放基礎資料類型的資料。

2.ArrayList常用方法

下面是總結了一些比較常用的ArrayList類成員方法:

  • 增加元素到鏈表中
    • boolean add(Element e)
      增加指定元素到鏈表尾部.
    • void add(int index, Element e)
      增加指定元素到鏈表指定位置.
  • 從鏈表中刪除元素
    • void clear()
      從鏈表中刪除所有元素.
    • E remove(int index)
      刪除鏈表中指定位置的元素.
    • protected void removeRange(int start, int end)
      刪除鏈表中從某一個位置開始到某一個位置結束的元素。
  • 擷取鏈表中的元素
    • E get(int index)
      擷取鏈表中指定位置處的元素.
    • Object[] toArray()
      擷取一個數組,數組中所有元素是鏈表中的元素.(即將鏈錶轉換為一個數組)
  • 修改某個元素
    • E set(int index, E element)
      將鏈表中指定位置上的元素替換成新元素。
  • 搜尋元素
    • boolean contains(Object o)
      如果鏈表包含指定元素,返回true.
    • int indexOf(Object o)
      返回元素在鏈表中第一次出現的位置,如果返回-1,表示鏈表中沒有這個元素。
    • int lastIndexOf(Object o)
      返回元素在鏈表中最後一次出現的位置,如果返回-1,表示鏈表中沒有這個元素。
  • 檢查鏈表是否為空白
    • boolean isEmpty()
      返回true表示鏈表中沒有任何元素.
  • 擷取鏈表大小
    • int size()
      返回鏈表長度(鏈表包含元素的個數).

以上是ArrayList類中使用比較多的成員方法。每個方法的更詳細的說明或其它沒有提及到的方法,讀者可以參考java官方api

3.ArrayList使用執行個體
 1 import java.util.*; 2  3 public class ArrayListExamples { 4  5     public static void main(String args[]) { 6         // 建立一個空的數組鏈表對象list,list用來存放String類型的資料 7         ArrayList<String> list = new ArrayList<String>(); 8  9         // 增加元素到list對象中10         list.add("Item1");11         list.add("Item2");12         list.add(2, "Item3"); // 此條語句將會把“Item3”字串增加到list的第3個位置。14         list.add("Item4");15 16         // 顯示數組鏈表中的內容17         System.out.println("The arraylist contains the following elements: "18                 + list);19 20         // 檢查元素的位置21         int pos = list.indexOf("Item2");22         System.out.println("The index of Item2 is: " + pos);23 24         // 檢查數組鏈表是否為空白25         boolean check = list.isEmpty();26         System.out.println("Checking if the arraylist is empty: " + check);27 28         // 擷取鏈表的大小29         int size = list.size();30         System.out.println("The size of the list is: " + size);31 32         // 檢查數組鏈表中是否包含某元素33         boolean element = list.contains("Item5");34         System.out35                 .println("Checking if the arraylist contains the object Item5: "36                         + element);37 38         // 擷取指定位置上的元素39         String item = list.get(0);40         System.out.println("The item is the index 0 is: " + item);41 42         // 遍曆arraylist中的元素43 44         // 第1種方法: 迴圈使用元素的索引和鏈表的大小45         System.out46                 .println("Retrieving items with loop using index and size list");47         for (int i = 0; i < list.size(); i++) {48             System.out.println("Index: " + i + " - Item: " + list.get(i));49         }50 51         // 第2種方法:使用foreach迴圈52         System.out.println("Retrieving items using foreach loop");53         for (String str : list) {54             System.out.println("Item is: " + str);55         }56 57         // 第三種方法:使用迭代器58         // hasNext(): 返回true表示鏈錶鏈表中還有元素59         // next(): 返回下一個元素60         System.out.println("Retrieving items using iterator");61         for (Iterator<String> it = list.iterator(); it.hasNext();) {62             System.out.println("Item is: " + it.next());63         }64 65         // 替換元素66         list.set(1, "NewItem");67         System.out.println("The arraylist after the replacement is: " + list);68 69         // 移除元素70         // 移除第0個位置上的元素71         list.remove(0);72 73         // 移除第一次找到的 "Item3"元素74         list.remove("Item3");75 76         System.out.println("The final contents of the arraylist are: " + list);77 78         // 轉換 ArrayList 為 Array79         String[] simpleArray = list.toArray(new String[list.size()]);80         System.out.println("The array created after the conversion of our arraylist is: "81                         + Arrays.toString(simpleArray));82     }83 }

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.