欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java集合的總體框架相關(guān)知識(shí)總結(jié)

 更新時(shí)間:2021年05月26日 16:30:53   作者:想成為大師啊  
今天帶大家學(xué)習(xí)Java集合框架的相關(guān)知識(shí),文中有非常詳細(xì)的圖文介紹,對(duì)正在學(xué)習(xí)Java的小伙伴們很有幫助,需要的朋友可以參考下

一、集合概述

數(shù)組其實(shí)就是一個(gè)集合。集合實(shí)際上就是一個(gè)容器??梢詠?lái)容納其它的數(shù)據(jù)。

二、集合在開(kāi)發(fā)中的應(yīng)用

集合是一個(gè)容器,是一個(gè)載體,可以一次容納多個(gè)對(duì)象。在實(shí)際開(kāi)發(fā)中,假設(shè)連接數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)當(dāng)中有10條記錄,那么假設(shè)把這10條記錄查詢出來(lái),在Java程序中會(huì)將10條數(shù)據(jù)封裝成10個(gè)Java對(duì)象,然后將10個(gè)Java對(duì)象放到某一個(gè)集合當(dāng)中,將集合傳到前端,然后遍歷集合,將一個(gè)數(shù)據(jù)一個(gè)數(shù)據(jù)展現(xiàn)出來(lái)

三、集合存儲(chǔ)的數(shù)據(jù)

  •  Java集合中實(shí)際存放的只是對(duì)象的引用,每個(gè)集合元素都是一個(gè)引用變量,實(shí)際內(nèi)容都放在堆內(nèi)存或者方法區(qū)里面,但是基本數(shù)據(jù)類型是在棧內(nèi)存上分配空間的,棧上的數(shù)據(jù)隨時(shí)就會(huì)被收回的。
  • 可以通過(guò)包裝類把基本類型轉(zhuǎn)為對(duì)象類型,存放引用就可以解決這個(gè)問(wèn)題。更方便的,由于有了自動(dòng)拆箱和裝箱功能,基本數(shù)據(jù)類型和其對(duì)應(yīng)對(duì)象(包裝類)之間的轉(zhuǎn)換變得很方便,想把基本數(shù)據(jù)類型存入集合中,直接存就可以了,系統(tǒng)會(huì)自動(dòng)將其裝箱成封裝類,然后加入到集合當(dāng)中

在這里插入圖片描述

注意:

  • 集合在Java中本身是一個(gè)容器,是一個(gè)對(duì)象
  • 集合中任何時(shí)候存儲(chǔ)的都是“引用”
  • 集合里面存儲(chǔ)的是對(duì)象內(nèi)存地址
  • 集合里面可以套集合
  • 集合也是一個(gè)對(duì)象,也有內(nèi)存地址

在這里插入圖片描述

在Java中每一個(gè)不同的集合,底層會(huì)對(duì)應(yīng)不同的數(shù)據(jù)結(jié)構(gòu)。往不同的集合中存儲(chǔ)元素,等于將數(shù)據(jù)放到了不同的數(shù)據(jù)結(jié)構(gòu)當(dāng)中。什么是數(shù)據(jù)結(jié)構(gòu)?數(shù)據(jù)存儲(chǔ)的結(jié)構(gòu)就是數(shù)據(jù)結(jié)構(gòu)。不同的數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)存儲(chǔ)方式不同。

比如

  • 數(shù)組
  • 二叉樹(shù)
  • 鏈表
  • 哈希表…

以上這些都是常用的數(shù)據(jù)結(jié)構(gòu)

你往集合c1中存放數(shù)據(jù),可能是放到數(shù)組上了。
你往集合c2中存放數(shù)據(jù),可能是放到二叉樹(shù)上了。

你使用不同的集合等同于使用了不同的數(shù)據(jù)結(jié)構(gòu)。new不同的對(duì)象,就是使用不同的數(shù)據(jù)結(jié)構(gòu)。如果對(duì)集合用法不了解,多去查JDK的API和百度

  • new ArrayList(); 創(chuàng)建一個(gè)集合,底層是數(shù)組
  • new LinkedList(); 創(chuàng)建一盒集合對(duì)象,底層是鏈表
  • new TreeSet(); 創(chuàng)建一個(gè)集合對(duì)象,底層是二叉樹(shù)

四、集合的包

所有的集合類和集合接口都在Java.util包下,Java.util.*;

五、集合的兩大類

  • 一類是單個(gè)方式存儲(chǔ)元素,單個(gè)方式存儲(chǔ)元素,這一類集合中超級(jí)父接口:Java.util.Collection;
  • 一類是以鍵值對(duì)的方式存儲(chǔ)元素,以鍵值對(duì)的方式存儲(chǔ)元素,這一類集合中超級(jí)父接口:Java.util.Map;

Iterrator it = “Collection 對(duì)象”.iterator();
it是迭代器對(duì)象

在這里插入圖片描述

synchronized

  • 修飾一個(gè)代碼塊,被修飾的代碼塊稱為同步語(yǔ)句塊,其作用的范圍是大括號(hào){}括起來(lái)的代碼,作用的對(duì)象是調(diào)用這個(gè)代碼塊的對(duì)象;
  • 修飾一個(gè)方法,被修飾的方法稱為同步方法,其作用的范圍是整個(gè)方法,作用的對(duì)象是調(diào)用這個(gè)方法的對(duì)象;
  • 修改一個(gè)靜態(tài)的方法,其作用的范圍是整個(gè)靜態(tài)方法,作用的對(duì)象是這個(gè)類的所有對(duì)象;
  • 修改一個(gè)類,其作用的范圍是synchronized后面括號(hào)括起來(lái)的部分,作用主的對(duì)象是這個(gè)類的所有對(duì)象。

Iterable是接口

  • 可迭代的,可遍歷的,所有集合元素都是可迭代的,可遍歷的
  • 屬性:iterator()

Collection是接口

  •  collection繼承于Iterable
  • 所有集合繼承Iterable的含義是:所有集合都是可迭代的

Iterator

  • Iterator與Collection是關(guān)聯(lián)關(guān)系
  • 集合的迭代器對(duì)象
  • 屬性:hashNext(),next(),remove()…

List是接口

  • List繼承于Collectionlist
  • 集合元素的特點(diǎn):有序可重復(fù),存儲(chǔ)的元素有下標(biāo)
  • 有序?qū)嶋H上是說(shuō)存進(jìn)去是這個(gè)順序,取出來(lái)還是這個(gè)順序,這里的順序不是按照大小排序
  • 有序是因?yàn)閘ist集合都有下標(biāo),下標(biāo)從0開(kāi)始,以1遞增

ArrayList

  • ArrayList繼承于ListArrayList
  • 集合底層采用了數(shù)組這種數(shù)據(jù)結(jié)構(gòu)
  • ArrayList集合是非線程安全的

LinkedList

  • LinkedList繼承于List
  • LinkedList集合底層采用了雙向鏈表數(shù)據(jù)結(jié)構(gòu)

Vector

  • Vector繼承于List
  • Vector集合底層采用了數(shù)組這種數(shù)據(jù)結(jié)構(gòu)
  • Vector集合是線程安全的
  • Vector所有的方法都有syndronized關(guān)鍵詞修飾,所以線程安全,但是效率較低,Vector用的少

Set是接口

  • Set繼承于Collection
  • Set集合存儲(chǔ)元素特點(diǎn):無(wú)序不可重復(fù)
  • 無(wú)序表示存進(jìn)去是這個(gè)順序,取出來(lái)就不一定是這個(gè)順序了
  • Set集合中元素沒(méi)有下
  • 標(biāo)Set集合中的元素不能重復(fù)

HashSet

  • HashSet繼承于Set
  • HashSet集合在new的時(shí)候,底層實(shí)際上new了一個(gè)HashMap集合
  • 向HashSet集合中存儲(chǔ)元素,實(shí)際上是存儲(chǔ)到了HashMap集合中
  • HashMap集合是一個(gè)哈希表數(shù)據(jù)結(jié)構(gòu)

SortedSet是接口

-SortedSet集合存儲(chǔ)元素的特點(diǎn):無(wú)序不可重復(fù),但是放在SortedSet集合中的元素可以自動(dòng)排序
SortedSet是可排序集合。放到該集合中的元素是自動(dòng)按照大小順序排序

TreeSet

  • TreeSet繼承于SortedSetTreeSet
  • 集合底層實(shí)際上是TreeMap
  • new TreeSet集合的時(shí)候,底層實(shí)際上new了一個(gè)TreeMap集合
  • 往TreeSet集合中放數(shù)據(jù)的時(shí)候,實(shí)際上是將數(shù)據(jù)放到TreeMap集合中了
  • TreeMap集合底層采用了二叉樹(shù)數(shù)據(jù)結(jié)構(gòu)

Map是接口

  • Map集合和Collection集合沒(méi)有關(guān)系
  • Map集合以key和value的這種鍵值對(duì)的存儲(chǔ)方式存儲(chǔ)元素
  • key和value都是存儲(chǔ)Java對(duì)象的內(nèi)存地址
  • 所有Map集合的key特點(diǎn):無(wú)序不重復(fù)
  • Map集合的key和Set集合存儲(chǔ)元素特點(diǎn)相同

HashMap

  • HashMap繼承于Map
  • HashMap集合底層是哈希表數(shù)據(jù)結(jié)構(gòu)
  • 非線程安全的
  • Hashable
  • Hashable集合底層也是哈希表數(shù)據(jù)結(jié)
  • 構(gòu)線程安全,其中所有方法都帶有synchronized關(guān)鍵字,效率低

SortedMap是接口

  • SortedMap集合存儲(chǔ)元素特點(diǎn):無(wú)序不可重復(fù)
  • 放在SortedMap集合key部分的元素會(huì)自動(dòng)按照大小順序排序
  • 稱為可排序的集合

 Properties

  • Properties繼承Hashable,另外Properties存儲(chǔ)元素的時(shí)候也是采用key和value的形式存儲(chǔ)k
  • ey和value只支持String類型,不支持其他類型
  • Properties被稱為屬性類

TreeMap

  • TreeMap集合底層的數(shù)據(jù)結(jié)構(gòu)是一個(gè)二叉樹(shù)

到此這篇關(guān)于Java集合的總體框架相關(guān)知識(shí)總結(jié)的文章就介紹到這了,更多相關(guān)Java集合框架內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 在js與java中判斷json數(shù)據(jù)中是否含有某字段的案例

    在js與java中判斷json數(shù)據(jù)中是否含有某字段的案例

    這篇文章主要介紹了在js與java中判斷json數(shù)據(jù)中是否含有某字段的案例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-12-12
  • Java實(shí)現(xiàn)文件名倒序排序的技術(shù)指南

    Java實(shí)現(xiàn)文件名倒序排序的技術(shù)指南

    在實(shí)際開(kāi)發(fā)過(guò)程中,我們經(jīng)常需要對(duì)文件進(jìn)行操作和處理,一個(gè)常見(jiàn)的需求是按文件名倒序排列文件列表,以便于文件的管理和查找,本文將介紹如何在Java中實(shí)現(xiàn)文件名倒序排序,并提供詳細(xì)的代碼案例,需要的朋友可以參考下
    2024-08-08
  • java基礎(chǔ)的詳細(xì)了解第五天

    java基礎(chǔ)的詳細(xì)了解第五天

    這篇文章對(duì)Java編程語(yǔ)言的基礎(chǔ)知識(shí)作了一個(gè)較為全面的匯總,在這里給大家分享一下。需要的朋友可以參考,希望能給你帶來(lái)幫助
    2021-08-08
  • SpringBoot使用前綴樹(shù)過(guò)濾敏感詞的方法實(shí)例

    SpringBoot使用前綴樹(shù)過(guò)濾敏感詞的方法實(shí)例

    Trie也叫做字典樹(shù)、前綴樹(shù)(Prefix Tree)、單詞查找樹(shù),特點(diǎn):查找效率高,消耗內(nèi)存大,這篇文章主要給大家介紹了關(guān)于SpringBoot使用前綴樹(shù)過(guò)濾敏感詞的相關(guān)資料,需要的朋友可以參考下
    2022-01-01
  • SpringBoot整合PageHelper分頁(yè)無(wú)效的常見(jiàn)原因分析

    SpringBoot整合PageHelper分頁(yè)無(wú)效的常見(jiàn)原因分析

    這篇文章主要介紹了SpringBoot整合PageHelper分頁(yè)無(wú)效的常見(jiàn)原因分析,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • Springboot集成kafka高級(jí)應(yīng)用實(shí)戰(zhàn)分享

    Springboot集成kafka高級(jí)應(yīng)用實(shí)戰(zhàn)分享

    這篇文章主要介紹了Springboot集成kafka高級(jí)應(yīng)用實(shí)戰(zhàn)分享,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-08-08
  • 關(guān)于spring依賴注入的方式以及優(yōu)缺點(diǎn)

    關(guān)于spring依賴注入的方式以及優(yōu)缺點(diǎn)

    這篇文章主要介紹了關(guān)于spring依賴注入的方式以及優(yōu)缺點(diǎn),依賴注入,是IOC的一個(gè)方面,是個(gè)通常的概念,它有多種解釋,這概念是說(shuō)你不用創(chuàng)建對(duì)象,而只需要描述它如何被創(chuàng)建,需要的朋友可以參考下
    2023-07-07
  • Java 中 Reference用法詳解

    Java 中 Reference用法詳解

    這篇文章主要介紹了Java 中 Reference用法詳解的相關(guān)資料,需要的朋友可以參考下
    2017-03-03
  • java獲取注冊(cè)ip實(shí)例

    java獲取注冊(cè)ip實(shí)例

    本文分享了java獲取注冊(cè)ip實(shí)例代碼,代碼簡(jiǎn)潔,具有很好的參考價(jià)值,需要的朋友一起來(lái)看下吧
    2016-12-12
  • 關(guān)于Redis鍵值出現(xiàn)\xac\xed\x00\x05t\x00&錯(cuò)誤的解決方法

    關(guān)于Redis鍵值出現(xiàn)\xac\xed\x00\x05t\x00&錯(cuò)誤的解決方法

    這篇文章主要介紹了關(guān)于Redis鍵值出現(xiàn)\xac\xed\x00\x05t\x00&的解決方法,出現(xiàn)該問(wèn)題的原因是, redis template向redis存放使用java對(duì)象序列化的值,序列化方式和string的一般方式不同,需要的朋友可以參考下
    2023-08-08

最新評(píng)論