天天看點

Java入門—集合

應用場景:

  1. 無法預測存儲資料的數量
  2. 同時存儲具有一對一關系的資料
  3. 需要進行資料的增删
  4. 資料重複問題

集合概覽

Java入門—集合

image.png

List(清單)

  • List是元素有序并且可以重複的集合,稱為序列。
  • List可以精确控制每個元素的插入位置,或者删除某個為止的元素。
  • List兩個主要實作類是ArrayList 和 LinkedList。

ArrayList 和 LinkedList 兩者的資料存儲方式是不同的:

  • ArrayList :和數組相似,但是長度可以動态增長,在記憶體中的一片連續存儲空間進行存儲
  • LinkedList:本身是連結清單

Set

無序、不重複集合。

HashSet

  • HashSet是Set的一個重要實作類,稱為哈希集。
  • HashSet中元素無需并且不可重複。
  • HashSet中隻允許一個null元素。
  • 具有良好的存取和查找性能。

HashSet底層是hashMap。

周遊HashSet需要使用疊代器方法。

Iterator(疊代器)

  • Iterator接口可以以統一的方式對各種集合元素進行周遊
  • hasNext()方法檢測集合中是否還有下一個元素(傳回ture或false)
  • next() 方法傳回集合中的下一個元素
import java.util.HashSet;
import java.util.Set;
import java.util.Iterator;

public class TestIterator {
    public static void main(String[] args){
        Set s = new HashSet();
        s.add("allen");
        s.add("ming");
        s.add("hello");
        Iterator it = s.iterator();
        while (it.hasNext()){
            System.out.println(it.next());
        }

    }
}
           

Map

  • Map中的資料是以鍵值對(key-value)形式存儲的
  • key-value以Entry類型的對象執行個體存在
  • 通過key可以快速查找value值
  • 不能包含重複的建(key值必須唯一)

HashMap

  • 基于哈希表的Map接口實作
  • 允許使用null值和null鍵值
  • HashMap中Entry對象時無序排列的

總結

ArrayList

  • 底層由數組實作
  • 元素有序且可以重複
  • 可以動态增長,以滿足應用程式的需求
  • 元素值可以為null
  • 元素無序并且不可以重複
  • 隻允許一個null元素
  • 鍵不能重複
  • 允許使用null值和null鍵
  • HashMap中的Entry對象是無序排列的
  • Iterator接口以統一的方式對各種集合元素進行周遊
    Java入門—集合