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

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

Java基礎學習:java數據結構視頻

更新時間:2020-04-02 14:12:25 來源:動力節點 瀏覽2596次


  1. 數據結構概述


  Java的集合框架其實就是對數據結構的封裝,在學習集合框架之前,有必要先了解下數據結構。


  1.1. 什么是數據結構(了解)


  所謂數據結構,其實就是計算機存儲、組織數據的方式。


  數據結構是用來模擬數據存儲操作的,其實就是對數據做增刪改查操作。


  增:把某個數據存儲到某個容器中


  刪:從容器中把某個數據刪除掉


  改:把容器中某個數據替換成另一個數據


  查:把容器中的數據查詢出來


  不同的數據結構,底層采用不同的存儲方式(算法),在具體操作的時候效率是不一樣的,比如有的查詢速度很快,有的插入速度很快,有的操作頭和尾速度很快等。


  常見的數據結構:


  數組(Array)掌握


  鏈表(Linked List)了解


  哈希表(Hash)了解


  棧(Stack)了解


  隊列(Queue)了解


  樹(Tree)了解


  圖(Graph)


  堆(Heap)


  1.2. 數組結構


  1.2.1. 模擬ArrayList(掌握)


  假設我現在是某個籃球隊的教練,需要安排5個球員上場打球。此時需要模擬上場球員的存儲,簡單一點,我們就只存儲上場球員的球衣號碼。那么此時我需要以下幾個操作:


       1.初始一個容量為5的容器,用來存儲場上的5個球衣號碼。


  2.安排5個球員上場,比如球員號碼分別為11、22、33、44、55。


  3.查詢指定索引位置球員的球衣號碼是多少,如查詢索引位置為2的球衣號碼是33。


  4.替換場上索引位置為2的球員,使用333號替換33號。


  5.罰下場上索引位置為2的球員(直接罰下,沒有補位)。


  6.打印出場上球員的球衣號碼,打印風格如 [11,22,33,44,55]。


  操作前后效果圖:

Java基礎學習:java數據結構視頻


  1.2.2. 初始化操作(掌握)


  使用Integer數組來存儲場上球員號碼,提供了兩個構造器,一個用于自定義初始化容量,一個用于使用默認的初始化容量10。


Java基礎學習:java數據結構視頻


  測試代碼:


Java基礎學習:java數據結構視頻


  1.2.3. 打印操作(掌握)

  

Java基礎學習:java數據結構視頻


  1.2.4. 保存操作(掌握)

  

Java基礎學習:java數據結構視頻


  測試代碼

  

Java基礎學習:java數據結構視頻


  輸出結果:


  []


  [11,22,33,44,55]


  因為數組的長度是固定的,此時的players數組只能存儲5個元素,如果再多存儲一個就報錯:數組索引越界。此時就要考慮在保存操作時對數組做擴容操作,擴容的原理是:


  創建一個原數組長度兩倍長的新數組


  把舊數組中的所有元素拷貝到新數組中


  把新數組的引用賦給舊數組變量


  保存操作時擴容操作:


  //向場上添加一個球員號碼

  

Java基礎學習:java數據結構視頻


  1.2.5. 查詢操作(掌握)


  需求:查詢指定索引位置球員的球衣號碼是多少,如查詢索引位置為2的球衣號碼是33。


  其實就是返回數組中,指定索引對應的元素值。

  

Java基礎學習:java數據結構視頻


  測試代碼:


  Integer playerNum = list.get(2);


  System.out.println(playerNum);


  輸出結果:


  33


  1.2.6. 修改操作(掌握)


  需求:替換場上索引位置為2的球員,使用333號替換33號。


Java基礎學習:java數據結構視頻


  1.2.7. 刪除操作(掌握)


  需求:罰下場上索引位置為2的球員(直接罰下,沒有補位)。


  刪除操作的原理,把后續的元素整體往前挪動一個位置。

  

Java基礎學習:java數據結構視頻


  1.2.8. 讓容器支持存儲任意數據類型的元素(掌握)


  此時元素類型是Integer類型,也就是只能存儲整型的數據,但是卻不能存儲其他類型的數據,此時我們可以考慮吧元素類型改成Object,那么Object數組可以存儲任意類型的數據。


  1,首先是定義成員變量和構造器:

  

Java基礎學習:java數據結構視頻


  2,添加和查詢方法:

  

Java基礎學習:java數據結構視頻


  3,替換和刪除方法:

  

Java基礎學習:java數據結構視頻


  4,打印方法:

  

Java基礎學習:java數據結構視頻


  1.2.9. 數組的性能分析(了解)


  在計算機科學中,算法的時間復雜度是一個函數,它定性描述了該算法的運行時間,常用大O符號來表述。


  時間復雜度是同一問題可用不同算法解決,而一個算法的質量優劣將影響到算法乃至程序的效率。算法分析的目的在于選擇合適算法和改進算法。


  我們在這里針對ArrayList存儲數據的增刪改查(CRUD)做性能分析:


  保存操作:


  如果保存在數組的最后一個位置,至少需要操作一次。


  如果保存在數組的第一個位置,如果存在N個元素,此時需要操作N次(后面的元素要整體后移)。


  平均: (N+1) /2 次。 N表示數組中元素的個數。 如果要擴容,更慢,性能更低。


  刪除操作:


  如果刪除最后一個元素,操作一次。


  如果刪除第一個元素,操作N次。


  平均:(N+1)/2次.


  修改操作: 操作1次.


  查詢操作:根據索引查詢元素: 操作1次.


  結論:基于數組的數據結構做查詢是和修改是非常快的,做保存和刪除操作比較慢了。


  那如果想保證保存和刪除操作的性能,此時就得提提鏈表這種數據結構了。


  以上就是動力節點java培訓機構的小編針對“Java基礎學習:java數據結構視頻”的內容進行的回答,希望對大家有所幫助,如有疑問,請在線咨詢,有專業老師隨時為你服務。


  Java零基礎學習視頻


  2020Java零基礎教程:http://www.dabaquan.cn/javavideo/110.html


  2020JavaSE進階:http://www.dabaquan.cn/javavideo/144.html


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

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 精品欧美在线 | 亚洲人成网i8禁止 | 亚洲欧美日韩一区超高清 | 亚洲精品乱码久久久久久蜜桃欧美 | 免费观看欧美成人禁片 | 欧美一区二区在线观看视频 | 国产日韩一区二区三区在线播放 | 亚洲天天网综合自拍图片专区 | 日本亚洲精品一区二区三区 | 国产精品福利视频免费观看 | 麻豆精品视频 在线视频 | 国产精品视频久久久久 | 国产午夜精品一区二区三区嫩草 | 久久国产国内精品对话对白 | 亚洲国产精品第一区二区 | 亚洲一区二区三区久久久久 | 亚洲精品动漫一区二区三区在线 | 亚洲精品区在线播放一区二区 | 久久免费精彩视频 | 中文字幕99 | 99在线观看精品 | 色噜噜狠狠一区二区三区 | 成人免费视频一区二区 | 特级毛片免费播放 | 四虎在线永久视频观看 | 香蕉在线观看999 | 国国产自国偷自产第38页 | 国内国产精品天干天干 | 国产一区视频在线免费观看 | 亚洲精品91| 国产乱码精品一区二区三上 | 久久国产欧美日韩精品 | 国内精品自在自线香蕉 | 国产福利视频一区二区三区 | 四虎.com| www.欧美激情 | 米奇777第四久久久99 | 久久久久影视 | 日韩精品久久不卡中文字幕 | 精品国产免费久久久久久婷婷 | 视频一区国产精品 |