溫馨提示×

溫馨提示×

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

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

Java集合干貨系列-集合總體大綱

發布時間:2020-08-10 14:57:43 來源:ITPUB博客 閱讀:218 作者:以Java架構贏天下 欄目:編程語言

前言

Java集合是java提供的工具包,包含了常用的數據結構:集合、鏈表、隊列、棧、數組、映射等。Java集合工具包位置是java.util.*

Java集合主要可以劃分為4個部分:List列表、Set集合、Map映射、工具類(Iterator迭代器、Enumeration枚舉類、Arrays和Collections)。

Java集合工具包框架圖(如下):

Java集合干貨系列-集合總體大綱


正文

看上面的框架圖,先抓住它的主干,即Collection和Map。

Collection接口、子接口以及實現類

Collection接口

  • 是List、Set和Queue接口的父接口

  • 定義了可用于操作List、Set和Queue的方法-增刪改查

Collection接口API中定義的方法如下:

Java集合干貨系列-集合總體大綱


List接口

  • List是元素有序并且可以重復的集合,被稱為序列

  • List可以精確的控制每個元素的插入位置,或刪除某個位置元素

  • List接口的常用子類:

  • ArrayList

  • LinkedList

  • Vector

  • Stack

下圖是List的JDK源碼UML圖。

Java集合干貨系列-集合總體大綱


Set接口

  • Set接口中不能加入重復元素,無序

  • Set接口常用子類:

  • 散列存放:HashSet

  • 有序存放:TreeSet

下圖是Set的JDK源碼UML圖。

Java集合干貨系列-集合總體大綱


Map和HashMap

Map接口

  • Map提供了一種映射關系,其中的元素是以鍵值對(key-value)的形式存儲的,能夠實現根據key快速查找value

  • Map中的鍵值對以Entry類型的對象實例形式存在

  • 鍵(key值)不可重復,value值可以

  • 每個建最多只能映射到一個值

  • Map接口提供了分別返回key值集合、value值集合以及Entry(鍵值對)集合的方法

  • Map支持泛型,形式如:Map

HashMap類

  • HashMap是Map的一個重要實現類,也是最常用,基于哈希表實現

  • HashMap中的Entry對象是無序排列的

  • Key值和Value值都可以為null,但是一個HashMap只能有一個key值為null的映射(key值不可重復)

下圖是Map的JDK源碼UML圖

Java集合干貨系列-集合總體大綱


Comparable和Comparator

Comparable接口——可比較的

  • 實現該接口表示:這個類的實例可以比較大小,可以進行自然排序

  • 定義了默認的比較規則

  • 其實現類需要實現compareTo()方法

  • compareTo()方法返回正數表示大,負數表示小0表示相等

Comparator 接口——比較工具接口

  • 用于定義臨時比較規則,而不是默認比較規則

  • 其實現類需要實現compare()方法

  • Comparable和Comparator都是Java集合框架的成員

Iterator接口

  1. 集合輸出的標準操作

  2. 標準做法,使用Iterator接口

  3. 操作原理:

  4. Iterator是專門的迭代輸出接口,迭代輸出就是將元素一個個進行判斷,判斷其是否有內容,如果有內容則把內容取出。

總結

集合的作用

  • 在類的內部,對數據進行組織;

  • 簡單而快速的搜索大數量的條目;

  • 有的集合接口,提供了一系列排列有序的元素,并且可以在序列中間快速的插入或者刪除有關元素;

  • 有的集合接口,提供了映射關系,可以通過關鍵字(key)去快速查找對應的唯一對象,而這個關鍵字額可以是任意類型。

與數組的對比—————為何選擇集合而不是數組

  • 數組的長度固定,集合長度可變

  • 數組只能通過下標訪問元素,類型固定,而有的集合可以通過任意類型查找所映射的具體對象。

整理的集合框架思維導圖

同時給大家推薦一個架構交流學習群:371067604,里面會分享一些資深架構師錄制的視頻錄像:有Spring,MyBatis,Netty源碼分析

,高并發、高性能、分布式、微服務架構的原理,JVM性能優化這些成為架構師必備的知識體系。還能領取免費的學習資源,相信對于已經工作

和遇到技術瓶頸的碼友,在這個群里會有你需要的內容。


點擊鏈接加入群聊【享學-Java技術交流群】:https://jq.qq.com/?_wv=1027&k=5fX2KCQ

Java集合干貨系列-集合總體大綱


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女