大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節(jié)點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 學習攻略 Java學習 快速了解Java集合框架菜鳥教程

快速了解Java集合框架菜鳥教程

更新時間:2020-02-20 12:36:38 來源:動力節(jié)點 瀏覽3227次

快速了解Java集合框架菜鳥教程,JDK1.2引入了Java集合框架,包含一組數(shù)據(jù)結(jié)構(gòu)。與數(shù)組不同,這些數(shù)據(jù)結(jié)構(gòu)的存儲空間會隨著元素添加動態(tài)增加。其中,一些支持添加重復元素另一些不支持,一些支持null,一些能自動升序打印元素。

  所有這些數(shù)據(jù)結(jié)構(gòu)在java.util包里,包含了Collection、List、Set、Map、SortedMap接口。這些接口的實現(xiàn)類有LinkedList、TreeSet、ArrayList、HashMap等。除了這些數(shù)據(jù)結(jié)構(gòu),java.util包還提供了Date、GregorianCalender、StringTokenizer、Random這樣的工具類。

  2.分類

  可以按照接口、實現(xiàn)、算法三個方面對集合框架中的數(shù)據(jù)結(jié)構(gòu)進行分類:

  接口:Collection、List、Map組成了集合框架中所有具體實現(xiàn)類的接口,它們定義了子類必須實現(xiàn)的方法,非常好記。比如向集合添加元素,會用到Collection中定義的add()方法

  實現(xiàn):所有實現(xiàn)了上述3個接口的類,都被稱作集合框架,實際上就是數(shù)據(jù)結(jié)構(gòu)。比如LinkedList、TreeSet等

  算法:集合框架提供了很多可以直接調(diào)用的算法,比如求最大最小值、排序、填充等

  3.優(yōu)缺點

  有以下4個優(yōu)點

  減少工作量的同時增加了軟件的可用性:不需要每個程序員動手實現(xiàn)排序、查找、找出元素在數(shù)據(jù)結(jié)構(gòu)中出現(xiàn)的次數(shù)

  執(zhí)行速度更快更持久:集合框架的底層數(shù)據(jù)結(jié)構(gòu)分為兩類,基于節(jié)點的和基于數(shù)組的,前者在頻繁添加時效率更高,后者在頻繁讀取時速度更快。一些數(shù)據(jù)結(jié)構(gòu)是synchronized線程安全的,但會影響速度有,另一些則不是線程安全的。程序員在選用數(shù)據(jù)結(jié)構(gòu)前要清楚地了解這些因素

  互操作與轉(zhuǎn)換:由于實現(xiàn)了Collection接口,數(shù)據(jù)結(jié)構(gòu)之間是可以相互轉(zhuǎn)換的。可以clone,可以把現(xiàn)有的結(jié)構(gòu)轉(zhuǎn)成synchronized版本,還可以在把基于鏈表的數(shù)據(jù)結(jié)構(gòu)轉(zhuǎn)為基于數(shù)組的結(jié)構(gòu)

  有以下2個缺點

  當心類型轉(zhuǎn)換:在集合框架類之間進行轉(zhuǎn)換時要大大地小心,尤其要考慮泛型類型的兼容性

  運行時類型檢查:集合框架在運行時會拋出異常,需要編程時多加注意

  4.繼承體系

  java.util中的數(shù)據(jù)結(jié)構(gòu)繼承體系分為兩大類,一類實現(xiàn)了Collection接口,一類實現(xiàn)了Map接口。

快速了解Java集合框架菜鳥教程

  Collection繼承體系(圖片來自Wikipedia)

快速了解Java集合框架菜鳥教程

  Map繼承體系(圖片來自Wikipedia)

  集合框架核心接口及實現(xiàn)類:

  Collection:根接口,大部分數(shù)據(jù)結(jié)構(gòu)都實現(xiàn)了Collection接口中的方法

  Set:實現(xiàn)Set接口的數(shù)據(jù)結(jié)構(gòu)不允許重復的元素,例如HashSet、LinkedHashSet

  SortedSet:實現(xiàn)SortedSet接口的數(shù)據(jù)結(jié)構(gòu)默認可按升序打印元素,例如TreeSet

  List:實現(xiàn)List接口的數(shù)據(jù)結(jié)構(gòu)允許重復元素,可通過index訪問元素,例如LinkedList、ArrayList、Vector

  Map:實現(xiàn)Map接口的數(shù)據(jù)結(jié)構(gòu)存儲鍵值對,不允許重復的key,例如HashMap、LinkedHashMap、Hashtable

  SortedMap:繼承了Map接口,存儲鍵值對,不允許重復的key,默認可按key升序打印元素,例如TreeMap

  SortedSet與SortedMap默認的排序是自然序,可通過Comparator或Comparable接口實現(xiàn)自定義排序。

  在接口與具體的實現(xiàn)類之間還有一些抽象類,如下圖:

快速了解Java集合框架菜鳥教程

  這些抽象類為集合增加了很多功能:

  HashSet:實現(xiàn)Set接口,不允許重復的元素,底層數(shù)據(jù)結(jié)構(gòu)hashtable

  LinkedHashSet:實現(xiàn)Set接口,不允許重復的元素,底層數(shù)據(jù)結(jié)構(gòu)hashtable與雙鏈表

  TreeSet:實現(xiàn)NavigableSet接口,不允許重復的元素,底層數(shù)據(jù)結(jié)構(gòu)紅黑樹

  ArrayList:實現(xiàn)List接口,允許重復元素,底層數(shù)據(jù)結(jié)構(gòu)可變數(shù)組

  LinkedList:實現(xiàn)List接口,允許重復元素,底層數(shù)據(jù)結(jié)構(gòu)雙鏈表

  Vector:實現(xiàn)List接口,允許重復元素,底層數(shù)據(jù)結(jié)構(gòu)可變數(shù)組

  HashMap:實現(xiàn)Map接口,不允許重復的key,底層數(shù)據(jù)結(jié)構(gòu)hashtable

  LinkedHashMap:實現(xiàn)Map接口,不允許重復的key,底層數(shù)據(jù)結(jié)構(gòu)hashtable與雙鏈表

  HashTable:實現(xiàn)Map接口,不允許重復的key,底層數(shù)據(jù)結(jié)構(gòu)hashtable

  TreeMap:實現(xiàn)SortedMap接口,不允許重復的key,底層數(shù)據(jù)結(jié)構(gòu)紅黑樹

快速了解Java集合框架菜鳥教程

       以上就是動力節(jié)點Java培訓機構(gòu)小編介紹的“快速了解Java集合框架菜鳥教程”的內(nèi)容,希望對大家有幫助,如有疑問,請在線咨詢,有專業(yè)老師隨時為你服務(wù)。

  相關(guān)文章

  Java培訓教程:Java集合框架源碼學習

  Java集合框架詳解,學習Java不求人

  你需要了解的Java集合類框架

  深入Java集合學習系列:集合框架

提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 久久月| 精品九九九 | 黄动漫在线无限看免费 | 久久www香蕉免费人成 | 久久99国产精品一区二区 | 日本综合色 | 国产精品久久免费 | 99热精品在线免费观看 | 国产精品久久久久久五月尺 | 4hu四虎永久网址 | 国产欧美亚洲三区久在线观看 | 国产成人一区二区三区视频免费 | 欧美国产一区二区三区 | 污视频在线看网站 | 午夜免费福利网站 | 日本精品夜色视频一区二区 | 日本人成免费大片 | 色综合久久中文综合网 | 青青青国产成人久久111网站 | 99re国产精品视频首页 | 亚洲欧美一区二区视频 | 国产综合成色在线视频 | 久久中文字幕综合婷婷 | 国产精品欧美一区二区三区不卡 | 婷婷国产| 国产精品视频在 | 亚洲一区二区欧美 | 99久久国产综合精品麻豆 | 欧美在线视频a | 久久婷婷色一区二区三区 | 国产精品久久一区二区三区 | 亚洲一级毛片在线播放 | 色拍拍噜噜噜aⅴ在线观看 色拍拍欧美视频在线看 | 国产一级淫片a免费播放口欧美 | 美国黑人特大一级毛片 | 夜夜精品视频一区二区 | 久久午夜国产片 | 一级特黄高清完整大片 | se婷婷 | 精品精品久久宅男的天堂 | 99久久亚洲 |