1. 程式人生 >實用技巧 >其它 >ArrayList的用法

ArrayList的用法


一.簡介

ArrayList支援可隨需要而增長的動態陣列。在Java陣列中,長度是固定的因此在陣列被建立後不能修改長度,這意味著開發者需要知道陣列的長度。但在一般情況下,只有在執行時才知道長度。為了解決這個問題,ArrayList因此而生

ArrayList:有序有下標 資料可重複,LinkedList:查詢慢,刪除插入快

二.實現
List lists = new ArrayList();(其中的String可以改為integer,double等型別)

注:ArrayList物件只能存放物件,不能存放基礎資料型別的資料。

三.建構函式
ArrayList中定義了三種構造方法

1.ArrayList()----------------構造了空的連結串列。

2.ArrayList(Collection<? extends E> c)------構造了一個包含指定元素集合的連結串列,字元E是一個標記,用來表示集合中元素的型別。

3.ArrayList(int initialCapacity)---------構造了一個大小確定但內容為空的連結串列。initialCapacity引數表示初始容量大小。

ArrayList遍歷方式

ArrayList有三種遍歷方式

迭代器遍歷

Iterator i = arrayList.iterator();
while(it.hasNext()){
    System.out.print(i.next() + " ");
}

索引值遍歷

for(int i = 0; i < arrayList.size(); i++){
   System.out.print(arrayList.get(i) + " ");
}

for迴圈遍歷

for(Integer number : arrayList){
   System.out.print(number + " ");
}

我們可以通過執行程式碼,來了解ArrayList的用法

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

public class testList {
	public static void main(String[] args) {
		/**
		 * ArrayList:有序有下標 資料可重複
		 * LinkedList:查詢慢,刪除插入快
		 */
		List list=new ArrayList<>();

一,增

1.

ArrayList的用法

        /**
		 * .add()
		 * 新增資料,將指定的元素追加到此列表的末尾
		 */
		list.add("張四");
		list.add(10);
		list.add(3.14);
		list.add('女');
張三
10
3.14
女

2.

ArrayList的用法

        /**
		 * .add(int index,E element)
		 * 在此列表中的指定位置插入指定的元素
		 */
		list.add(0, "帥哥");
帥哥
張三
10
3.14
女

3.

ArrayList的用法

	    /**
		 * .addAll(Collection<? extends E> c)
		 * 按指定集合的Iterator返回的順序將指定集合中的所有元素追加到此列表的末尾
		 */
		list.addAll(list);

4.

ArrayList的用法

        /**
		 * .addAll(int index,Collection<? extends E> c)
		 * 將指定集合中的所有元素插入到此列表中,從指定的位置開始。
		 */
		list.addAll(0, list);

二,刪

1.

ArrayList的用法

       /**
		 * .clear()
		 * 從列表中刪除所有元素
		 */
		list.clear();

2.

ArrayList的用法

        /**
		 * .remove(值) 根據值進行刪除 返回一個Boolean值
		 */
		list.remove(3.14);
帥哥
張三
10
女

3.

ArrayList的用法

        /**
		 * .remove(index) 根據下表進行刪除
		 */
	    list.remove(5);

4.

ArrayList的用法

5.

ArrayList的用法

三,改

1.

ArrayList的用法

        /**
		 * .set(index,值) 在指定下標的地方新增值
		 */
		list.set(1, "李四");
帥哥
李四
張三
10
女

2.

ArrayList的用法

 // 將此 ArrayList 例項的容量調整為列表的當前大小(實際元素個數)
    public void trimToSize() {
        modCount++;
        if (size < elementData.length) {
            elementData = Arrays.copyOf(elementData, size);
        }
    }

四,查

1.

ArrayList的用法

        /**
		 * .size 獲取集合長度
		 */
		int length=list.size();

2.

ArrayList的用法

for(int i=0;i<length;i++) {
		/**
		 * .get(index) 利用下標獲取結合的值
		 */
		Object o=list.get(i);
		System.out.println(o+"");
		}

3.

ArrayList的用法

ArrayList的用法

 // 返回ArrayList中首次出現的指定元素的索引,或如果此列表不包含元素,則返回 -1
    public int indexOf(Object o) {
        if (o == null) {
            for (int i = 0; i < size; i++)
                if (elementData[i]==null)
                    return i;
        } else {
            for (int i = 0; i < size; i++)
                if (o.equals(elementData[i]))
                    return i;
        }
        return -1;
    }
 
    // 返回ArrayList中最後一次出現的指定元素的索引,或如果此列表不包含索引,則返回 -1
    public int lastIndexOf(Object o) {
        if (o == null) {
            for (int i = size-1; i >= 0; i--)
                if (elementData[i]==null)
                    return i;
        } else {
            for (int i = size-1; i >= 0; i--)
                if (o.equals(elementData[i]))
                    return i;
        }
        return -1;
    }
System.out.println("--------第二種--for增強版----------");
		/**
		 * 增強版的for迴圈
		 * for(資料型別  物件名:集合名){}----集合中的每一個值都迴圈賦值給前面的物件
		 * 相當於Object o=list.get(i);
		 */
		for(Object o :list) {
			System.out.println(o+" ");
		}

4.

ArrayList的用法

	System.out.println("--------第三種--迭代迴圈----------");
		/**
		 * .iterator() 獲取集合的迭代器
		 */
		Iterator iterator=list.iterator();

5.

ArrayList的用法

list.isEmpty()

6.

ArrayList的用法

list.contains("張三")

五,toArray()的使用

ArrayList的用法

ArrayList的用法

 // toArray用法
 // 第一種方式(最常用)
 Integer[] integer = list.toArray(new Integer[0]);

 // 第二種方式(容易理解)
 Integer[] integer1 = new Integer[list.size()];
 arrayList.toArray(integer1);

 // 丟擲異常,java不支援向下轉型
 //Integer[] integer2 = new Integer[list.size()];
 //integer2 = arrayList.toArray();

六,

ArrayList的用法

ArrayList的用法

ArrayList的用法

ArrayList的用法

ArrayList的用法