1. 程式人生 > 其它 >java中List集合的實現類ArrayList、Vector、LinkedList的使用和區別

java中List集合的實現類ArrayList、Vector、LinkedList的使用和區別

技術標籤:Java基礎小知識javac++後端爬蟲

java中List集合的實現類ArrayList、Vector、LinkedList的使用和區別

先說一下集合陣列的異同,

共同點:都是用來儲存資料的物件容器。
不同點:
	陣列:陣列的長度是固定的,每個元素可以是任何型別。
	集合:集合的長度可以改變,可以增加元素和刪除元素。每個元素都是引用資料型別(基本資料型別可以轉換為包裝類物件)。

集合常用分類

集合主要分兩類
		Collection集合:
				List集合,Set集合;
		Map集合;

集合的API所在包在:java.util.*;

Collection集合

Collection介面不能例項化。

主要有以下常用抽象方法:

int	size() 
	返回此集合中的元素數。
boolean	add(E e) 
	確保此集合包含指定的元素(可選操作)。 
boolean	remove(Object o) 
	從該集合中刪除指定元素的單個例項(如果存在)(可選操作)。
void	clear() 
	從此集合中刪除所有元素(可選操作)。
boolean	isEmpty() 
	如果此集合不包含元素,則返回 true 。 
boolean	contains(Object o) 
	如果此集合包含指定的元素,則返回 true 。
Iterator<E>
	iterator() 
	返回此集合中的元素的迭代器。 

List集合

List介面繼承Collection介面,不能例項化。
特點:有序的集合,可以儲存重複的元素,繼承了Collection的抽象方法。
擴充套件的方法有:

E	get(int index) 
	返回此列表中指定位置的元素。
E	set(int index, E element) 
	用指定的元素(可選操作)替換此列表中指定位置的元素。 
E	remove(int index) 
	刪除該列表中指定位置的元素(可選操作)。
int	indexOf(Object o) 
	返回此列表中指定元素的第一次出現的索引,如果此列表不包含元素,則返回-1。 
int	lastIndexOf(Object o) 
	返回此列表中指定元素的最後一次出現的索引,如果此列表不包含元素,則返回-1。 
List<E>	subList(int fromIndex, int toIndex) 
	返回此列表中指定的 fromIndex (含)和 toIndex之間的檢視。

我們一般只用它的實現類ArrayList、Vector、LinkedList;

ArrayList、Vector、LinkedList

	他們三個的區別:
		ArrayList和Vector,採用的是陣列結構儲存資料,查詢和修改速度快,刪除和插入比較慢。
		LinkedList,採用的是連結串列結構儲存資料,查詢和修改速度慢,刪除和插入比較快。
		ArrayList是執行緒不安全的,速度快。
		Vector是執行緒安全的,速度慢。

他們三個我們使用最多的就是ArrayList。我以ArrayList為例演示一下它的一些常用操作:

//建立一個ArrayList集合
        ArrayList list=new ArrayList();
        //判斷list是否是一個集合並列印
        System.out.println("是否是空集合:"+list.isEmpty());
        //獲取list集合的長度
        //下面為了方便演示我列印下來
        System.out.println("新增元素前集合的長度:"+list.size());

        //新增元素
        list.add(1);
        list.add(2);
        list.add(3);
        list.add(6);
        list.add(5);
        list.add(4);

        System.out.println("新增元素後集合的長度:"+list.size());

        System.out.println("是否是空集合:"+list.isEmpty());

        //刪除元素
        //根據下標刪除
        list.remove(2);
        System.out.println("刪除元素2後集合的長度:"+list.size());

        //是否包含指定元素
        //4在集合中,9不在集合中
        boolean b1=list.contains(4);
        boolean b2=list.contains(9);
        System.out.println("4包含在集合中:"+b1);
        System.out.println("9包含在集合中:"+b2);

        //獲取指定元素
        Object o1=list.get(1);
        System.out.println("下標為1的元素:"+o1);

        //修改指定元素
        list.set(1,8);
        Object o2=list.get(1);
        System.out.println("下標為1的元素修改後:"+o2);

        //獲取指定元素第一次出現的下標
        int index1=list.indexOf(4);
        System.out.println("元素4第一次出現的下標:"+index1);

        //獲取指定元素最後一次出現的下標
        int index2=list.lastIndexOf(5);
        System.out.println("元素5最後一次出現的下標:"+index2);

        //擷取子集合
        List list1=list.subList(1,3);
        System.out.println("子集合的長度:"+list1.size());

        //清空集合
        list.clear();
        System.out.println(list.size());

在這裡插入圖片描述

List集合的遍歷,下次整理出來再補充。