溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Java集合的總體框架有什么用

發(fā)布時(shí)間:2021-05-27 10:06:12 來源:億速云 閱讀:165 作者:小新 欄目:開發(fā)技術(shù)

這篇文章將為大家詳細(xì)講解有關(guān)Java集合的總體框架有什么用,小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

一、集合概述

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

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

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

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

  •  Java集合中實(shí)際存放的只是對象的引用,每個(gè)集合元素都是一個(gè)引用變量,實(shí)際內(nèi)容都放在堆內(nèi)存或者方法區(qū)里面,但是基本數(shù)據(jù)類型是在棧內(nèi)存上分配空間的,棧上的數(shù)據(jù)隨時(shí)就會(huì)被收回的。

  • 可以通過包裝類把基本類型轉(zhuǎn)為對象類型,存放引用就可以解決這個(gè)問題。更方便的,由于有了自動(dòng)拆箱和裝箱功能,基本數(shù)據(jù)類型和其對應(yīng)對象(包裝類)之間的轉(zhuǎn)換變得很方便,想把基本數(shù)據(jù)類型存入集合中,直接存就可以了,系統(tǒng)會(huì)自動(dòng)將其裝箱成封裝類,然后加入到集合當(dāng)中

Java集合的總體框架有什么用

注意:

  • 集合在Java中本身是一個(gè)容器,是一個(gè)對象

  • 集合中任何時(shí)候存儲(chǔ)的都是“引用”

  • 集合里面存儲(chǔ)的是對象內(nèi)存地址

  • 集合里面可以套集合

  • 集合也是一個(gè)對象,也有內(nèi)存地址

Java集合的總體框架有什么用

在Java中每一個(gè)不同的集合,底層會(huì)對應(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ù)據(jù)結(jié)構(gòu)

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

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

  • new ArrayList(); 創(chuàng)建一個(gè)集合,底層是數(shù)組

  • new LinkedList(); 創(chuàng)建一盒集合對象,底層是鏈表

  • new TreeSet(); 創(chuàng)建一個(gè)集合對象,底層是二叉樹

四、集合的包

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

五、集合的兩大類

  • 一類是單個(gè)方式存儲(chǔ)元素,單個(gè)方式存儲(chǔ)元素,這一類集合中超級父接口:Java.util.Collection;

  • 一類是以鍵值對的方式存儲(chǔ)元素,以鍵值對的方式存儲(chǔ)元素,這一類集合中超級父接口:Java.util.Map;

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

Java集合的總體框架有什么用

synchronized

  • 修飾一個(gè)代碼塊,被修飾的代碼塊稱為同步語句塊,其作用的范圍是大括號{}括起來的代碼,作用的對象是調(diào)用這個(gè)代碼塊的對象;

  • 修飾一個(gè)方法,被修飾的方法稱為同步方法,其作用的范圍是整個(gè)方法,作用的對象是調(diào)用這個(gè)方法的對象;

  • 修改一個(gè)靜態(tài)的方法,其作用的范圍是整個(gè)靜態(tài)方法,作用的對象是這個(gè)類的所有對象;

  • 修改一個(gè)類,其作用的范圍是synchronized后面括號括起來的部分,作用主的對象是這個(gè)類的所有對象。

Iterable是接口

  • 可迭代的,可遍歷的,所有集合元素都是可迭代的,可遍歷的

  • 屬性:iterator()

Collection是接口

  •  collection繼承于Iterable

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

Iterator

  • Iterator與Collection是關(guān)聯(lián)關(guān)系

  • 集合的迭代器對象

  • 屬性:hashNext(),next(),remove()…

List是接口

  • List繼承于Collectionlist

  • 集合元素的特點(diǎn):有序可重復(fù),存儲(chǔ)的元素有下標(biāo)

  • 有序?qū)嶋H上是說存進(jìn)去是這個(gè)順序,取出來還是這個(gè)順序,這里的順序不是按照大小排序

  • 有序是因?yàn)閘ist集合都有下標(biāo),下標(biāo)從0開始,以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):無序不可重復(fù)

  • 無序表示存進(jìn)去是這個(gè)順序,取出來就不一定是這個(gè)順序了

  • Set集合中元素沒有下

  • 標(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):無序不可重復(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ù)據(jù)結(jié)構(gòu)

Map是接口

  • Map集合和Collection集合沒有關(guān)系

  • Map集合以key和value的這種鍵值對的存儲(chǔ)方式存儲(chǔ)元素

  • key和value都是存儲(chǔ)Java對象的內(nèi)存地址

  • 所有Map集合的key特點(diǎn):無序不重復(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):無序不可重復(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è)二叉樹

關(guān)于“Java集合的總體框架有什么用”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學(xué)到更多知識,如果覺得文章不錯(cuò),請把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI