1. 程式人生 > 實用技巧 >Java集合類

Java集合類

1 概述

集合是java提供的一種容器,可以儲存多個數據。
集合與陣列的不同:

  • 陣列的長度是固定的,集合的長度是可變的
  • 陣列儲存同一型別的元素,儲存基本資料型別;集合儲存物件的引用,可以是不同的物件型別

2 常見集合類的繼承關係

graph BT Collection-->Java.lang.Object Map-->Java.lang.Object HashMap-->Map TreeMap-->Map List-->Collection Set-->Collection ArrayList-->List LinkedList-->List HashSet-->Set TreeSet-->Set

3 Collection介面

常用方法:

方法 功能描述
public boolean add(E e) 把給定的物件新增到當前集合中
public void clear() 清空集合中所有的元素
public boolean remove(E e) 把給定的物件在當前集合中刪除
public boolean contains(E e) 判斷當前集合中是否包含給定的物件
public boolean isEmpty() 判斷當前集合是否為空
public int size() 返回集合中元素的個數
public Object[] toArray() 把集合中的元素,儲存到陣列中

3.1 Iterator迭代器

迭代:即Collection集合元素的通用獲取方式。在取元素之前先要判斷集合中有沒有元素,如果有,就把這個元素取出來,繼續在判斷,如果還有就再取出出來。一直把集合中的所有元素全部取出。這種取出方式專業術語稱為迭代。

Collection和Map介面主要用於儲存元素,Iterator主要用於迭代訪問(即遍歷)Collection中的元素
常用方法:

方法 功能描述
public Iterator iterator() 獲取集合對應的迭代器,用來遍歷集合中的元素
public boolean add(E e) 把給定的物件新增到當前集合中
public void clear()
清空集合中所有的元素
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;

public class Test2_Iterator {
    public static void main(String[] args) {
        Collection<String> coll = new ArrayList<String>();

        coll.add("艾倫");
        coll.add("三笠");
        coll.add("阿爾敏");

        Iterator<String> it = coll.iterator();
        while (it.hasNext()) {
            System.out.println(it.next());
        }
    }
}

當遍歷集合時,首先通過呼叫t集合的iterator()方法獲得迭代器物件,然後使用hashNext()方法判斷集合中是否存在下一個元素,如果存在,則呼叫next()方法將元素取出,否則說明已到達了集合末尾,停止遍歷元素。

增強for:也稱for each迴圈,是JDK1.5以後的高階for迴圈,專門用來遍歷陣列和集合。它的內部原理其實是個Iterator迭代器,所以在遍歷的過程中,不能對集合中的元素進行增刪操作。

//格式:
for(元素的資料型別  變數 : Collection集合or陣列){ 
  	//寫操作程式碼
}

3.2 List介面

在List集合中的元素允許重複,所有的元素線性方式儲存,在程式中可以通過索引訪問集合中的指定元素。各元素的儲存順序就是插入的順序。
常用方法:

方法 功能描述
public void add(int index, E element) : 將指定的元素,新增到該集合中的指定位置上
public E get(int index) 返回集合中指定位置的元素
public E remove(int index) 移除列表中指定位置的元素, 返回的是被移除的元素
public E set(int index, E element) 用指定元素替換集合中指定位置的元素,返回值是更新前的元素
  • ArrayList集合:資料儲存的結構是資料結構。元素查詢快,增刪慢,是最常用的集合
  • LinkedList集合:資料儲存的結構是連結串列結構。便於元素新增、刪除。

3.3 Set介面

java.util.Set 介面和 java.util.List 介面一樣,同樣繼承自 Collection 介面,它與 Collection 介面中的方法基本一致,並沒有對 Collection 介面進行功能上的擴充,只是比Collection 介面更加嚴格了。與 List 介面不同的是, Set 介面中元素無序,並且都會以某種規則保證存入的元素不出現重複。