初學者必讀:Java集合介面綜述

來源:互聯網
上載者:User
初學|集合|介面   集合總是需要迭代的,我們確實需要探察集合中的每一個元素,所以集合介面都無一例外的繼承了Iterable<T> 介面 ,而該介面的唯一方法 :

Iterator<T> iterator()
          返回一個在一組 T 類型的元素上進行迭代的迭代器。

  可以返回一個所有集合介面都繼承了的Iteraor介面,如此集合架構的所有子類都可以迭代顯示其元素!

  例如下:集合的根介面Collection繼承了Iterator介面:

public interface Collection<E>
extends Iterable<E>
  Collection 階層 中的根介面。Collection 表示一組對象,這些對象也稱為 collection 的元素。一些 collection 允許有重複的元素,而另一些則不允許。一些 collection 是有序的,而另一些則是無序的。JDK 不提供此介面的任何直接 實現:它提供更具體的子介面(如 Set 和 List)實現。此介面通常用來傳遞 collection,並在需要最大普遍性的地方操作這些 collection。 

  包 (bag)多集合 (multiset)(可能包含重複元素的無序 collection)應該直接實現此介面。

  所有通用的 Collection 實作類別(通常通過它的一個子介面間接實現 Collection)應該提供兩個“標準”構造方法:一個是 void(無參數)構造方法,用於建立空 collection;另一個是帶有 Collection 類型單參數的構造方法,用於建立一個具有與其參數相同元素新的 collection。實際上,後者允許使用者複製任何 collection,以產生所需實作類別型的一個等效 collection。儘管無法強制執行此約定(因為介面不能包含構造方法),但是 Java 平台庫中所有通用的 Collection 實現都遵從它。

  此介面中包含的“破壞性”方法,是指可修改其所操作的 collection 的那些方法,如果此 collection 不支援該操作,則指定這些方法拋出 UnsupportedOperationException。如果是這樣,那麼在調用對該 collection 無效時,這些方法可能,但並不一定拋出 UnsupportedOperationException。例如,如果要添加的 collection 為空白且不可修改,則對該 collection 調用 addAll(Collection) 方法時,可能但並不一定拋出異常。

  一些 collection 實現對它們可能包含的元素有所限制。例如,某些實現禁止 null 元素,而某些實現則對元素的類型有限制。試圖添加不合格的元素將拋出一個未經檢查的異常,通常是 NullPointerException 或 ClassCastException。試圖查詢是否存在不合格的元素可能拋出一個異常,或者只是簡單地返回 false;某些實現將表現出前一種行為,而某些實現則表現後一種。較為常見的是,試圖對某個不合格的元素執行操作且該操作的完成不會導致將不合格的元素插入 collection 中,將可能拋出一個異常,也可能操作成功,這取決於實現本身。這樣的異常在此介面的規範中標記為“可選”。

  此介面是 Java Collections Framework 的成員。

  Collections Framework 介面中的很多方法是根據 equals 方法定義的。例如,contains(Object o) 方法的規範聲明:“若且唯若此 collection 包含至少一個滿足 (o==null ? e==null :o.equals(e)) 的元素 e 時,才返回 true。” 應將此規範理解為它暗指調用具有不允許為 NULL 的參數 o 的 Collection.contains 方法會導致為任意的 e 元素調用 o.equals(e) 方法。可隨意對各種實現執行最佳化,只要避免調用 equals 即可,例如,通過首先比較兩個元素的雜湊碼。(Object.hashCode() 規範保證雜湊碼不相等的兩個對象不會相等)。較為常見的是,各種 Collections Framework 介面的實現可隨意利用基礎 Object 方法的指定行為,而不管實現程式認為它是否合適。

  集合Collection的父介面所返回的Iterator介面的意義: 

public interface Iterator<E>
  對集合進行迭代的迭代器。迭代器代替了 Java Collections Framework 中的 Enumeration。迭代器與枚舉有兩點不同:
  • 迭代器允許調用方利用定義良好的語義在迭代期間從迭代器所指向的集合移除元素。
  • 方法名稱得到了改進。


相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.