JAVA集合介面及類

來源:互聯網
上載者:User

標籤:插入資料   操作   線程   指標   inf   iterable   tor   迭代   treemap   

  • 各介面及類別關係圖

 

  • Iterable
    • 所有集合的初始介面,實現該介面可進行foreach操作,只有一個iterator()方法,並返回iterator類型;
    • Iterable在java.lang下,Iterator在java.util下,Iterator主要包括hasNext(), next(), remove();
    • 所有實現了Iterable就可以操作迭代器iterator, 但能使用迭代器iterator就未必實現了Iterable介面,如數組?
    • 為什麼需要Iterable? 因為Iterator中的next(), hasNext()依賴於當前迭代器中迭代的位置(指標),如果Collection直接實現Iterator會使迭代位置不可知,需要增加reset重設當前迭代,但也只能存在一個當前迭代;而Iterable每次可從頭開始計數,而且多個迭代互不影響。
  • Collection
    • 一個基本集合介面,包含一組Object元素;
    • 在java.util下,同時Collections是一個工具類,包含對集合各類操作的靜態方法,比如sort;
    • Collection下有三個子介面:List, Set, Queue
  • List
    • 有序(保持插入資料時的順序)、可重複的集合;
    • 子類ArrayList是基於數組實現的,但size動態可變化的;
    • 子類LinkedList實現 List<E>, Deque<E>, Cloneable, Serializable,雙向鏈表介面;可作為雙向Queue使用,也可以當做Stack使用;
    • ArrayList查詢效率高於LinkedList, 因為訪問LinkedList中的元素,需要每次從頭指標開始移動,而ArrayList可直接通過數組下標的方式擷取;但如果LinkedList通過Iterator, 則效率與ArrayList不會相差多少,因為Iterator方式遍曆會緩衝前後節點;
    • ArrayList插入和刪除的效率會比LinkedList低,因為ArrayList每次插入或刪除元素時,該元素的後續下標位置也要做相應的調整。
    • JDK1.2以後,Vector也是通過List介面實現的,Vector是安全執行緒的,ArrayList是非安全執行緒;
    • Stack是Vector子類,其主要特徵是先進後出(FILO, First In Last Out)。
  • Set
    • Set集合裡的元素沒有順序,但不能包含重複元素;
  • Map
    • 當把HashMap中的value都看成null時,可視為Set,其key的儲存形式與Set一致;
    • TreeMap維護key以某種排序方式;

JAVA集合介面及類

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.