java中List集合的實現類ArrayList、Vector、LinkedList的使用和區別
阿新 • • 發佈:2020-12-22
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集合的遍歷,下次整理出來再補充。