欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

全面接觸Java集合框架一二

系統 1920 0

Java 平臺提供了一個全新的集合框架。“集合框架”主要由一組用來操作對象的接口組成。不同接口描述一組不同數據類型。


Java 2集合框架圖

  集合接口:6個接口(短虛線表示),表示不同集合類型,是集合框架的基礎。

  抽象類:5個抽象類(長虛線表示),對集合接口的部分實現。可擴展為自定義集合類。

  實現類:8個實現類(實線表示),對接口的具體實現。

  在很大程度上,一旦您理解了接口,您就理解了框架。雖然您總要創建接口特定的實現,但訪問實際集合的方法應該限制在接口方法的使用上;因此,允許您更改基本的 數據結構 而不必改變其它代碼。

  · Collection 接口是一組允許重復的對象。

  · Set 接口繼承 Collection,但不允許重復,使用自己內部的一個排列機制。

  · List 接口繼承 Collection,允許重復,以元素安插的次序來放置元素,不會重新排列。

  · Map接口是一組成對的鍵-值對象,即所持有的是key-value pairs。Map中不能有重復的key。擁有自己的內部排列機制。

  · 容器中的元素類型都為Object。從容器取得元素時,必須把它轉換成原來的類型。


  Java 2簡化集合框架圖


集合接口

  1.Collection 接口

  用于表示任何對象或元素組。想要盡可能以常規方式處理一組元素時,就使用這一接口。

?


  (1) 單元素添加、刪除操作:

   boolean add(Object o):將對象添加給集合

   boolean remove(Object o): 如果集合中有與o相匹配的對象,則刪除對象o

  (2) 查詢操作:

   int size() :返回當前集合中元素的數量

   boolean isEmpty() :判斷集合中是否有任何元素

   boolean contains(Object o) :查找集合中是否含有對象o

   Iterator iterator() :返回一個迭代器,用來訪問集合中的各個元素

  (3) 組操作 :作用于元素組或整個集合

   boolean containsAll(Collection c): 查找集合中是否含有集合c 中所有元素

   boolean addAll(Collection c) : 將集合c 中所有元素添加給該集合

   void clear(): 刪除集合中所有元素

   void removeAll(Collection c) : 從集合中刪除集合c 中的所有元素

   void retainAll(Collection c) : 從集合中刪除集合c 中不包含的元素

  (4) Collection轉換為Object數組 :

   Object[] toArray() :返回一個內含集合所有元素的array

   Object[] toArray(Object[] a) :返回一個內含集合所有元素的array。運行期返回的array和參數a的型別相同,需要轉換為正確型別。

  此外,您還可以把集合轉換成其它任何其它的對象數組。但是,您不能直接把集合轉換成基本數據類型的數組,因為集合必須持有對象。

  “斜體接口方法是可選的。因為一個接口實現必須實現所有接口方法,調用程序就需要一種途徑來知道一個可選的方法是不是不受支持。如果調用一種可選方法時,一個 UnsupportedOperationException 被拋出,則操作失敗,因為方法不受支持。此異常類繼承 RuntimeException 類,避免了將所有集合操作放入 try-catch 塊。”

  Collection不提供get()方法。如果要遍歷Collectin中的元素,就必須用Iterator。

  1.1.AbstractCollection 抽象類

  AbstractCollection 類提供具體“集合框架”類的基本功能。雖然您可以自行實現 Collection 接口的所有方法,但是,除了iterator()和size()方法在恰當的子類中實現以外,其它所有方法都由 AbstractCollection 類來提供實現。如果子類不覆蓋某些方法,可選的如add()之類的方法將拋出異常。

  1.2.Iterator 接口

  Collection 接口的iterator()方法返回一個 Iterator。Iterator接口方法能以迭代方式逐個訪問集合中各個元素,并 安全 的從Collection 中除去適當的元素。


  (1) boolean hasNext(): 判斷是否存在另一個可訪問的元素

    Object next(): 返回要訪問的下一個元素。如果到達集合結尾,則拋出NoSuchElementException異常。

  (2) void remove(): 刪除上次訪問返回的對象。本方法必須緊跟在一個元素的訪問后執行。如果上次訪問后集合已被修改,方法將拋出IllegalStateException。

  “Iterator中刪除操作對底層Collection也有影響。”

  迭代器是 故障快速修復(fail-fast)的。這意味著,當另一個線程修改底層集合的時候,如果您正在用 Iterator 遍歷集合,那么,Iterator就會拋出 ConcurrentModificationException (另一種 RuntimeException異常)異常并立刻失敗。

全面接觸Java集合框架一二


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 成 人 片 在线观看 激情五月六月婷婷 | 2021国产精品自产拍在线 | 欧美日韩在线一区二区 | 99热久久国产精品免费看 | 亚洲综合婷婷 | 魔法骑士在线观看免费完整版高清 | 日本不卡在线视频 | 精品三级视频 | 新97人人模人人爽人人喊 | 超碰8| 亚洲一区在线日韩在线深爱 | 久久精品免费国产 | 蜜桃日本免费MV免费播放 | 五月久久亚洲七七综合中文网 | 伊人精品国产 | 亚洲毛片 | 日本黄色中文字幕 | 久久aⅴ国产欧美74aaa | www.午夜剧场 | 9久9久女女热精品视频免费观看 | 亚洲aⅴ天堂av在线电影软件 | 奇米激情 | 日韩亚洲人成网站在线播放 | 亚洲日本中文 | 日本伊人色综合网站 | 亚洲精品一区二区三区在线 | 亚洲精品午夜国产va久久成人 | 这里精品 | 国产伦精品一区二区三区四区视频 | 日日摸天天碰中文字幕 | 成年视频免费观看 | 青青草福利视频 | 亚洲欧美久久婷婷爱综合一区天堂 | 国产精品视频在线观看 | 久草在线国产 | 91看片在线 | 国产1区在线观看 | 人妻熟女久久久久久久 | 久久99国产精品免费网站 | 色哟哟国产成人精品 | 黄色视频a级毛片 |