最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java集合的總體框架相關知識總結

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

一、集合概述

數(shù)組其實就是一個集合。集合實際上就是一個容器。可以來容納其它的數(shù)據(jù)。

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

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

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

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

在這里插入圖片描述

注意:

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

在這里插入圖片描述

在Java中每一個不同的集合,底層會對應不同的數(shù)據(jù)結構。往不同的集合中存儲元素,等于將數(shù)據(jù)放到了不同的數(shù)據(jù)結構當中。什么是數(shù)據(jù)結構?數(shù)據(jù)存儲的結構就是數(shù)據(jù)結構。不同的數(shù)據(jù)結構,數(shù)據(jù)存儲方式不同。

比如

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

以上這些都是常用的數(shù)據(jù)結構

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

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

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

四、集合的包

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

五、集合的兩大類

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

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

在這里插入圖片描述

synchronized

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

Iterable是接口

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

Collection是接口

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

Iterator

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

List是接口

  • List繼承于Collectionlist
  • 集合元素的特點:有序可重復,存儲的元素有下標
  • 有序?qū)嶋H上是說存進去是這個順序,取出來還是這個順序,這里的順序不是按照大小排序
  • 有序是因為list集合都有下標,下標從0開始,以1遞增

ArrayList

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

LinkedList

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

Vector

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

Set是接口

  • Set繼承于Collection
  • Set集合存儲元素特點:無序不可重復
  • 無序表示存進去是這個順序,取出來就不一定是這個順序了
  • Set集合中元素沒有下
  • 標Set集合中的元素不能重復

HashSet

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

SortedSet是接口

-SortedSet集合存儲元素的特點:無序不可重復,但是放在SortedSet集合中的元素可以自動排序
SortedSet是可排序集合。放到該集合中的元素是自動按照大小順序排序

TreeSet

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

Map是接口

  • Map集合和Collection集合沒有關系
  • Map集合以key和value的這種鍵值對的存儲方式存儲元素
  • key和value都是存儲Java對象的內(nèi)存地址
  • 所有Map集合的key特點:無序不重復
  • Map集合的key和Set集合存儲元素特點相同

HashMap

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

SortedMap是接口

  • SortedMap集合存儲元素特點:無序不可重復
  • 放在SortedMap集合key部分的元素會自動按照大小順序排序
  • 稱為可排序的集合

 Properties

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

TreeMap

  • TreeMap集合底層的數(shù)據(jù)結構是一個二叉樹

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

相關文章

  • Java接口測試Cookie與token原理解析

    Java接口測試Cookie與token原理解析

    這篇文章主要介紹了Java接口測試Cookie與token原理解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-04-04
  • 簡單了解Java的默認和靜態(tài)方法

    簡單了解Java的默認和靜態(tài)方法

    這篇文章主要介紹了簡單了解Java的默認和靜態(tài)方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-01-01
  • Netty分布式ByteBuf使用subPage級別內(nèi)存分配剖析

    Netty分布式ByteBuf使用subPage級別內(nèi)存分配剖析

    這篇文章主要為大家介紹了Netty分布式ByteBuf使用subPage級別內(nèi)存分配剖析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-03-03
  • Mac配置 maven以及環(huán)境變量設置方式

    Mac配置 maven以及環(huán)境變量設置方式

    這篇文章主要介紹了Mac配置 maven以及環(huán)境變量設置方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • SpringCloud應用骨架開發(fā)詳解

    SpringCloud應用骨架開發(fā)詳解

    這篇文章主要介紹了SpringCloud應用骨架開發(fā)詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-09-09
  • Java數(shù)組越界問題實例解析

    Java數(shù)組越界問題實例解析

    這篇文章主要介紹了Java數(shù)組越界問題實例解析,具有一定參考價值,需要的朋友可以了解下。
    2017-10-10
  • 大數(shù)據(jù) java hive udf函數(shù)的示例代碼(手機號碼脫敏)

    大數(shù)據(jù) java hive udf函數(shù)的示例代碼(手機號碼脫敏)

    這篇文章主要介紹了大數(shù)據(jù) java hive udf函數(shù)(手機號碼脫敏),的相關知識,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-06-06
  • JavaWeb三大組件之Filter過濾器詳解

    JavaWeb三大組件之Filter過濾器詳解

    這篇文章主要介紹了JavaWeb三大組件之Filter過濾器詳解,過濾器Filter是Java?Web應用中的一種組件,它在請求到達Servlet或JSP之前或者響應送回客戶端之前,對請求和響應進行預處理和后處理操作,需要的朋友可以參考下
    2023-10-10
  • 基于Java中Math類的常用函數(shù)總結

    基于Java中Math類的常用函數(shù)總結

    下面小編就為大家?guī)硪黄贘ava中Math類的常用函數(shù)總結。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-09-09
  • Java設計模式之單一職責原則精解

    Java設計模式之單一職責原則精解

    設計模式(Design pattern)代表了最佳的實踐,通常被有經(jīng)驗的面向?qū)ο蟮能浖_發(fā)人員所采用。設計模式是軟件開發(fā)人員在軟件開發(fā)過程中面臨的一般問題的解決方案。本篇介紹設計模式七大原則之一的單一職責原則
    2022-02-02

最新評論

九台市| 郸城县| 侯马市| 卓尼县| 平度市| 万载县| 汾西县| 阿拉善右旗| 抚松县| 常宁市| 许昌县| 修文县| 浑源县| 温泉县| 林西县| 华宁县| 新干县| 乡宁县| 共和县| 宣恩县| 乌海市| 宁安市| 乡宁县| 绍兴市| 乐平市| 探索| 潢川县| 都昌县| 区。| 阜南县| 镇沅| 通江县| 玛纳斯县| 宝兴县| 大庆市| 综艺| 巴楚县| 隆昌县| 合江县| 峨眉山市| 沂源县|