1. 程式人生 > >Java實例詳細五分彩網站開發講解ArrayList用法

Java實例詳細五分彩網站開發講解ArrayList用法

con ins lastindex pac http pos 類型 lis created

Java.util.ArrayList類是五分彩網站開發 haozbbs.com Q1446595067一個動態數組類型,也就是說,ArrayList對象既有數組的特征,也有鏈表的特征。可以隨時從鏈表中添加或刪除一個元素。ArrayList實現了List接口。

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

ArrayList:底層實現時數組,線程不安全,效率高。所以,查詢快。修改、插入、刪除慢。

LinkedList:底層實現是鏈表,線程不安全,效率高。所以,查詢慢。修改、插入、刪除快。

Vector:線程安全的,效率低。

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.out
35 .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.out
46 .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 為 Array
79 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 }

Java實例詳細五分彩網站開發講解ArrayList用法