黄色网址大全免费-黄色网址你懂得-黄色网址你懂的-黄色网址有那些-免费超爽视频-免费大片黄国产在线观看

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 學習攻略 Java學習 Java開發:Java基礎數據結構學習

Java開發:Java基礎數據結構學習

更新時間:2019-12-03 11:12:05 來源:動力節點 瀏覽2574次

 

  數據結構是計算機存儲,組織數據的方式。數據結構是指相互之間存在一種或多種特定關系的數據元素的集合。通常情況下,精心選擇的數據結構可以帶來更高的運行或存儲效率。數據結構往往同高效的檢索算法和索引技術有關

  java中常見的幾種數據結構(也是初級工程師常見面試題)主要是一些常見的容器,它們主要來自于Collection和Map這2個集合;以下是2個集合的總體框架

  (1)Collection接口圖

image.png

 

  

  (2)map接口圖

image.png

 下面我將每一個接口或類進行詳細介紹,其中他們所擁有的方法就不介紹了,可以自行查API,另外,很多方法也不會用到,常見的方法就那么幾個。

1.Collction:

Collection接口繼承自超級接口Iterator,是Collection層次結構中的根接口。Collection表示一組對象,這些對象也被稱為Collection的元素。一些Collection允許有重復的元素(例如List),但是另一些則不允許有重復的元素,即可為無序的(如Set)。JDK不提供此接口的任何直接實現---它會提供更為具體的子接口(如Set和List),這從上面的UML也可以看出來。此接口用來傳遞Collection,并在需要最大普遍性的地方操作這些Collection。其實現類的底層是由數組或者鏈表組成,數組是通過首地址+(元素長度*下標),即通過下標查詢的,因此查詢速度快,而增刪慢(在增刪的時候,數組需要整體的移動,所以慢);鏈表不維護序號,即鏈表不存在下標的概念,**所以查詢很慢(通過地址查詢的),而增刪快(直接通過地址刪掉某一個元素,其它元素不需要移動)數組:查詢快,增刪慢;鏈表:查詢慢,增刪快

1.1.List:有序,可重復

ArrayList:底層是數組結構,線程不安全。查詢快,增刪慢

LinkedList:底層是鏈表結構,線程不安全。查詢慢,增刪快

Vector:底層是數組結構,是線程安全的,所以效率很低,已經被ArrayList取代

1.2.Set:無序,不可重復

HashSet類及其實現類LinkedHashSet:底層是使用了哈希表來支持的,特點:存取速度快,線程不安全,集合元素允許為NULL

SortedSet接口及其實現類TreeSet:如果元素具備自然順序的特性,那么就按照元素自然順序的特性進行排序存儲。

1.3.EnumSet

EnumSet類是專為枚舉類設計的集合類,EnumSet中的所有元素都必須是指定枚舉類型的枚舉值

2.Map

Map用于保存具有映射關系的數據,因此Map集合里保存著兩組值,一組值用于保存Map里的key,另外一組用于保存Map里的value,key和value都是可以任意引用類型的數據。Map的key不允許重復,即同一個Map對象的任何兩個key通過equals方法比較總是返回false.給key-value起個名字:Entry,表示一個鍵值對,對應Map的一個實體;把Entry放到集合set中就是一個Map如果把Map所有value放在一起來看,元素與元素之間可以重復,每個元素可以根據索引來查找,相當于list集合,只是Map中的索引不再使用整數值,而是以另外一個對象作為索引。如果需要從List集合中取出元素,需要提供該元素的數字索引。如果需要從Map中取出元素,需要提供該元素的key索引,因此,Map也被稱為字典。

  常見的實現類:

2.1.HashMap:

  采用哈希表算法,此時Map中的key不會保證添加的先后順序,key也不允許重復.key判斷重復的標準是:key1和key2是否equals為true,并且與hashCode相等.其中實現類LinkedHashMap采用了鏈表和哈希表算法

2.2.TreeMap:

sortedMap接口的實現類,采用紅黑樹算法,此時Map中的key會按照自然順序或定制排序進行排序,,key也不允許重復.key判斷重復的標準是:compareTo/compare的返回值是否為0.

2.3.Hashtable:

  采用哈希表算法,是HashMap的前身(類似于Vector是ArrayList的前身).打死不用.在Java的集合框架之前,表示映射關系就使用Hashtable.所有的方法都使用synchronized修飾符,線程安全的,但是性能相對HashMap較低.其子類Properties要求key和value都是String類型.

Java學習視頻入門到精通

最新java視頻教程免費下載(從入門到精通):http://www.ilovecolors.com.cn/video.html

零基礎java自學教程:http://www.ilovecolors.com.cn/tutorial_java_se/

       以上就是動力節點java學院小編針對“Java開發:Java基礎數據結構學習”的內容進行的回答,希望對大家有所幫助,如果對于學習Java的學習計劃,怎么學才有效率,或者學完如果找工作的問題,請在線咨詢,有專業老師隨時為你服務。

相關推薦

零基礎學Java編程,這些內容你一定要知道

學習Java編程了解一些免費Java開發工具

初學者學Java編程真的很難?

新手自學Java編程需要多長時間呢

學習Java編程可以做什么

 

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

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: haose08永久免费视频 | 欧美精品99久久久久久人 | 综合国产在线 | 国产成人18黄网站免费 | 中文字幕成人免费高清在线视频 | 午夜视频在线观看视频 | 天天摸天天草 | 三级纯黄 | 亚洲精品高清久久 | 亚洲精品网站在线观看不卡无广告 | 一级黄色片aaa | 黄色按摩视频 | 欧美日韩中文字幕在线观看 | 毛片网站视频 | 亚洲欧美人成人让影院 | 亚亚洲乱码一二三四区 | 性大片免费视频观看 | 日本欧美亚洲 | 色老头在线观看精品 | 国产最猛性xxxxxx69交 | 亚洲日本中文字幕永久 | 在线观看免费视频网站色 | 被窝国产理论一二三影院 | 婷婷桃色网| 色视频网站在线观看 | 日日噜噜夜夜狠狠视频buoke | 国产一级久久久久久毛片 | 翁熄性荡事最新篇王伟忠 | 小xav导航福利网址 小处雏一区二区三区精 | 人成18亚洲资源在线 | 欧美日本在线视频 | 国产毛片毛片精品天天看 | 午夜精品久久久久久影视riav | 亚洲日韩视频免费观看 | 999视频在线播放777 | 一个人看的免费在线视频 | 玖玖爱zh综合伊人久久 | 精品色综合 | 天天摸天天摸天天躁 | 久久多多屋影院三级 | 欧美一区二区日韩一区二区 |