一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - java集合繼承關系圖分享

java集合繼承關系圖分享

2021-01-29 11:39kosamino Java教程

這篇文章主要為大家詳細介紹了java集合繼承關系圖,具有一定的參考價值,感興趣的小伙伴們可以參考一下

  面向對象語言對事物的體現都是以對象的形式,所以為了方便對多個對象的操作,就對對象進行存儲,集合就是存儲對象最常用的一種方式。

  數組雖然也可以存儲對象,但長度是固定的;集合長度是可變的,數組中可以存儲基本數據類型,集合只能存儲對象。

  集合類的特點:集合只用于存儲對象,集合長度是可變的,集合可以存儲不同類型的對象。

 java集合繼承關系圖分享

  java集合繼承關系圖分享

  上述類圖中,實線邊框的是實現類,比如arraylist,linkedlist,hashmap等,折線邊框的是抽象類,比如abstractcollection,abstractlist,abstractmap等,而點線邊框的是接口,比如collection,iterator,list等。

1、iterator接口

  iterator接口,這是一個用于遍歷集合中元素的接口,主要包含hashnext(),next(),remove()三種方法。它的一個子接口linkediterator在它的基礎上又添加了三種方法,分別是add(),previous(),hasprevious()。也就是說如果是先iterator接口,那么在遍歷集合中元素的時候,只能往后遍歷,被遍歷后的元素不會在遍歷到,通常無序集合實現的都是這個接口,比如hashset,hashmap;而那些元素有序的集合,實現的一般都是linkediterator接口,實現這個接口的集合可以雙向遍歷,既可以通過next()訪問下一個元素,又可以通過previous()訪問前一個元素,比如arraylist。

  抽象類的使用。如果要自己實現一個集合類,去實現那些抽象的接口會非常麻煩,工作量很大。這個時候就可以使用抽象類,這些抽象類中給我們提供了許多現成的實現,我們只需要根據自己的需求重寫一些方法或者添加一些方法就可以實現自己需要的集合類,工作流昂大大降低。

2、collection (集合的最大接口)繼承關系

  ——list 可以存放重復的內容

  ——set  不能存放重復的內容,所以的重復內容靠hashcode()和equals()兩個方法區分

  ——queue  隊列接口

  ——sortedset  可以對集合中的數據進行排序

  collection定義了集合框架的共性功能。

java集合繼承關系圖分享

  add方法的參數類型是object。以便于接收任意類型對象。

  集合中存儲的都是對象的引用(地址)。

3、list的常用子類

  特有方法。凡是可以操作角標的方法都是該體系特有的方法。

java集合繼承關系圖分享

  ——arraylist   線程不安全,查詢速度快

  ——vector  線程安全,但速度慢,已被arraylist替代

  ——linkedlist  鏈表結果,增刪速度快

4、set接口

  set:元素是無序(存入和取出的順序不一定一致),元素不可以重復。
  ——hashset:底層數據結構是哈希表。是線程不安全的。不同步。
    hashset是如何保證元素唯一性的呢?
    是通過元素的兩個方法,hashcode和equals來完成。
    如果元素的hashcode值相同,才會判斷equals是否為true。
    如果元素的hashcode值不同,不會調用equals。

    注意,對于判斷元素是否存在,以及刪除等操作,依賴的方法是元素的hashcode和equals方法。

  ——treeset:

    有序的存放:treeset  線程不安全,可以對set集合中的元素進行排序

    通過compareto或者compare方法來保證元素的唯一性,元素以二叉樹的形式存放。

5、object類

  在實際開發中經常會碰到區分同一對象的問題,一個完整的類最好覆寫object類的hashcode()、equals()、tostring()三個方法。

6、集合的輸出

  ——4種常見的輸出方式

  ——iterator: 迭代輸出,使用最多的輸出方式

  ——listiterator: iterator的子接口,專門用于輸出list中的內容

  ——enumeration

  ——foreach

  在迭代時,不可以通過集合對象的方法操作集合中的元素,因為會發生concurrentmodificationexception異常。所以,在迭代器時,只能用迭代器的放過操作元素,可是iterator方法是有限的,只能對元素進行判斷,取出,刪除的操作,如果想要其他的操作如添加,修改等,就需要使用其子接口,listiterator。該接口只能通過list集合的listiterator方法獲取。

7、map接口

  correction、set、list接口都屬于單值的操作,而map中的每個元素都使用key——>value的形式存儲在集合中。

  map集合:該集合存儲鍵值對。一對一對往里存。而且要保證鍵的唯一性。

java集合繼承關系圖分享

8、map接口的常用子類

  map
  ——hashmap:底層是哈希表數據結構,允許使用 null 值和 null 鍵,該集合是不同步的。將hashtable替代,jdk1.2.效率高。
  ——treemap:底層是二叉樹數據結構。線程不同步。可以用于給map集合中的鍵進行排序。

9、集合工具類

  collections:集合框架的工具類。里面定義的都是靜態方法。

  collections和collection有什么區別?
    collection是集合框架中的一個頂層接口,它里面定義了單列集合的共性方法。
      它有兩個常用的子接口,
      ——list:對元素都有定義索引。有序的。可以重復元素。
      ——set:不可以重復元素。無序。

    collections是集合框架中的一個工具類。該類中的方法都是靜態的。
      提供的方法中有可以對list集合進行排序,二分查找等方法。
      通常常用的集合都是線程不安全的。因為要提高效率。
      如果多線程操作這些集合時,可以通過該工具類中的同步方法,將線程不安全的集合,轉換成安全的。

10.比較  

  java集合繼承關系圖分享

11.總結:

  list:add/remove/get/set。

    1、arraylist:其實就是數組,容量一大,頻繁增刪就是噩夢,適合隨機查找;

    2、linkedlist:增加了push/[pop|remove|pull],其實都是removefirst;

    3、vector:歷史遺留產物,同步版的arraylist,代碼和arraylist太像;

    4、stack:繼承自vector。java里其實沒有純粹的stack,可以自己實現,用組合的方式,封裝一下linkedlist即可;

    5、queue:本來是單獨的一類,不過在sun的jdk里就是用linkedlist來提供這個功能的,主要方法是offer/pull/peek,因此歸到這里呢。

  set:add/remove。可以用迭代器或者轉換成list。

    1、hashset:內部采用hashmap實現的;

    2、linkedhashset:采用linkedhashmap實現;

    3、treeset:treemap。

  map:put/get/remove。

    1、hashmap/hashtable:散列表,和arraylist一樣采用數組實現,超過初始容量會對性能有損耗;

    2、linkedhashmap:繼承自hashmap,但通過重寫嵌套類hashmap.entry實現了鏈表結構,同樣有容量的問題;

    3、properties:是繼承的hashtable。

    順便說一下arrays.aslist,這個方法的實現依賴一個嵌套類,這個嵌套類也叫arraylist!

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

原文鏈接:http://www.cnblogs.com/jing99/p/7057245.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 麻豆资源| 天堂久久久久va久久久久 | 欧美成人精品第一区二区三区 | 亚洲精品午夜久久aaa级久久久 | 91夜夜人人揉人人捏人人添 | 女班长的放荡日记高h | 吉川爱美与黑人解禁 | 国产精品一区二区三 | 亚洲欧美在线观看一区二区 | 四虎e234hcom| 青青草国产一区二区三区 | 91在线精品视频 | 好爽轻点太大了太深了 | 欧美一区二区三区精品 | 国产精品麻豆99久久 | 爱情岛论坛亚洲品质自拍视频 | 色臀网站| 亚洲精品久久久992KVTV | 青草视频在线观看免费网站 | 398av影院视频在线 | 高清视频在线观看+免费 | 欧美国产日本精品一区二区三区 | 国产精品原创巨作无遮挡 | 爽爽影院免费观看 | 国产情侣自拍网 | 日本人成动漫网站在线观看 | 99久久精品国产免看国产一区 | 免费港剧在线观看港剧 | 丝袜捆绑调教视频免费区 | 色呦呦tv | 日韩亚洲人成网站在线播放 | 欧美日韩视频在线一区二区 | 学校捏奶揉下面污文h | 我和岳的性事小说 | 午夜私人影院在线观看 视频 | 狠狠色综合久久久久尤物 | 亚洲国产综合另类视频 | 欧美日韩国产在线人成 | 996热精品视频在线观看 | 久久精品18| 2020年新四虎免费 |