JAVA集合知識點匯總 - 前言

一、數據結構

1.研究和解決什么問題?
一堆數據怎么在內存中存儲更方便、更高效

2.數據在內存中不一定都是挨著連續存儲的

3.例如公司,黨派,幫派;每個都有自己的組織模式和運行機構來幫助他們正常發展和運行。

4.常見的數據結構:
線性表(list) 鏈表(linked list) 棧(stack) 隊列(queue) 樹(tree)

5.list,線性表 分三種

名稱 介紹 舉例
有序列表 插入的順序作為遍歷的順序,位置不變(長度固定) 數組
順序存儲 插入的順序作為遍歷的順序,允許插入和刪除(位置可變) 長度可變 缺點:插入和刪除的效率低 優點:查詢效率高
鏈式存儲(鏈表) 哪里有空位,就可以往哪里存 優點:插入和刪除的效率高 缺點:查詢效率很低

6.棧 先進后出,后進先出,就像彈夾 限制了插入和刪除的位置,只能在一端(尾部)進行
例如:
瀏覽器的“前進”和“后退”
很多軟件的“撤銷”和“恢復”

7.隊列(queue) 先進先出 后進后出 插入是在對尾,刪除是在對前 客服電話的排隊
例如:大學食堂排隊打飯,醫院掛號排隊等

8.Hash table(散列表,也叫哈希表)是根據關鍵碼值(Key-value)而直接進行訪問的數據結構。也就是說,它通過把關鍵碼值映射到表中一個位置來訪問記錄,以加快查找的速度。(目錄+鏈表,就像字典)

  • 特點:目錄+鏈表 插入、刪除和查詢的效率都很高
  • 缺點:沒下標
  • 哈希表
    哈希表

9.樹 二叉樹 平衡二叉樹(紅黑樹) 特點 插入、刪除和查詢的效率都很高

樹
二叉樹
二叉樹
平衡樹
平衡樹

二、數組和集合

數組(可以存儲基本數據類型)是用來存現對象的一種容器,但是數組的長度固定,不適合在對象數量未知的情況下使用。

集合(只能存儲對象,對象類型可以不一樣)的長度可變,可在多數情況下使用。

三、Java集合概述

1.我們要存的數據的個數是不確定 集合

2.數組只能存同一種類型的數據

3.集合可以稱之為超級數組

4.打開java.util.ArrayList的源代碼,首先映入眼簾的是@author Josh Bloch,
這位大叔就是玉樹凌風,風流倜儻,人稱Java之母的Josh Bloch ,Java集合框架就是他一手打造的

5.結構圖

結構圖
結構圖

項目地址:傳送門

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 原文地址 Java集合 Java集合框架:是一種工具類,就像是一個容器可以存儲任意數量的具有共同屬性的對象。 Ja...
    gyl_coder閱讀 996評論 0 8
  • java基礎 集合承繼包含圖 Collection vs Collections 首先,"Collection" ...
    onlyHalfSoul閱讀 1,347評論 0 5
  • Java集合類可用于存儲數量不等的對象,并可以實現常用的數據結構如棧,隊列等,Java集合還可以用于保存具有映射關...
    小徐andorid閱讀 1,976評論 0 13
  • 【編者按】本文作者為擁有十年金融軟件開發經驗的 Mikhail Vorontsov,文章主要概覽了所有標準 Jav...
    OneAPM_Official閱讀 946評論 0 7
  • Java SE 基礎: 封裝、繼承、多態 封裝: 概念:就是把對象的屬性和操作(或服務)結合為一個獨立的整體,并盡...
    Jayden_Cao閱讀 2,149評論 0 8