集合

簡介

大致分爲四種

  1. Set :
    • 代表無需,不可重複的集合。
  2. List:
    • 代表有序,重複的集合
  3. Map:
    • 代表具有映射關係的集合
  4. Queue:
    • 代表隊列集合實現

和數組的區別

  1. 數組長度必須得初始化長度,長度是要提前知道。容易固定無法動態改變。但是集合可以保存數量不確定的數據。同時還能保存映射關係數據(鍵值對 key-value)
  2. 數組的元素可以對象或者基本類型,而集合只能是對象(保存對象的引用而非本身)
  3. 集合有着封裝,繼承,多態的特性,通過方法和屬性實現複雜操作。

圖例

image
MAP 類圖例
image
Map由key和value兩個值組成。裏面的key是不可重複的,key用戶標識集合裏的每項數據。

接口

Collection 接口

集合框架的根接口(Collection 繼承了Iterable
其中包含的增刪改查等多個方法操作,其中還有 lterator 來遍歷集合元素。

lterator 迭代器

主要用法是爲了遍歷集合,其中有兩個主要方法

boolean hasNext();//如果有元素可以迭代,則返回true
next();//返回迭代的下一個元素

以下例子怎麼迭代

public class Demo {
    public static void main(String[] args){
        //創建集合,添加元素  
        Collection<String> temp = new ArrayList<String>();
        for(int i =0;i<10;i++){
           
            temp.add(String.valueof(i));
        }
        //獲取days集合的迭代器
        Iterator<String> iterator = temp.iterator();
        while(iterator.hasNext()){//判斷是否有下一個元素
            String next = iterator.next();//取出該元素
            //逐個遍歷,取得元素後進行後續操作
            .....
        }
    }

}

注意:
修改迭代變量的值是不會修改集合本身的元素。因爲 lterator 並不是把集合元素傳給迭代變量,只是傳來值,如同參數傳遞。

set集合

Set 就是 Collection ,沒有添加新的方法,只是 Set 不也許添加重複元素,不同的行爲。

List 集合

元素有序,可重複的集合。集合中每個元素都有其對應的順序索引。List集合允許使用重複元素,可以通過索引來訪問指定位置的集合元素 。List集合默認按元素的添加順序設置元素的索引,例如第一個添加的元素索引爲0,第二個添加的元素索引爲1…
List作爲Collection接口的子接口,可以使用Collection接口裏的全部方法。而且由於List是有序集合,因此List集合裏增加了一些根據索引來操作集合元素的方法。

Map 集合

Map用戶保存具有映射關係的數據,因此Map集合裏保存着兩組數,一組值用戶保存Map裏的key,另一組值用戶保存Map裏的value,key和value都可以是任何引用類型的數據。Map的key不允許重複,value可以重複。

Queue 集合

Queue用戶模擬隊列這種數據結構,隊列通常是指“先進先出”(FIFO,first-in-first-out)的容器。隊列的頭部是在隊列中存放時間最長的元素,隊列的尾部是保存在隊列中存放時間最短的元素。新元素插入(offer)到隊列的尾部,訪問元素(poll)操作會返回隊列頭部的元素。通常,隊列不允許隨機訪問隊列中的元素。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章