摘要:說到復盤基礎,并不是所有的都會復盤,沒那個時間更沒那個必要。比如,一些基礎的語法以及條件語句,極度簡單。思前想后,我覺得整個計劃應該從集合開始,而復盤的方式就是讀源碼。通常,隊列不允許隨機訪問隊列中的元素。
?
老讀者都知道,我是自學轉行到 java 的。那時迫于生存壓力,學得比較快,很多知識點僅停留在會用的層面。最近,光會用不知道原理,沒什么意思。每次使用時都是機械性的 "熟練使用"。加之一直有回歸基礎的想法,所以想在業余時間復盤 java 的基礎知識。知其然知其所以然是技術人的追求。
說到復盤基礎,并不是所有的都會復盤,沒那個時間更沒那個必要。比如,一些基礎的語法以及條件語句,極度簡單。這類是不需要復盤的。思前想后,我覺得整個計劃應該從集合開始,而復盤的方式就是讀源碼。
1、Java 為什么要有集合?首先,java 是一門面向對象語言,操作對象是我們的日常。既然操作就需要有東西把對象存儲起來。于是容器就應運而生,初學者接觸到的第一個容器就是數組,但這遠遠不夠,根據不同的對象以及不同的業務,我們需要用到不同的容器。比如,不想要重復對象,我們就會想到用 set 容器,想要對象有序我們會用 List 。不管是 List、Set。他們都會有共性,?而 java 就根據這些共性,給我們提供了 Collection 集合。
2、Collection?接口框架圖由上面的 Collection 接口框架圖,我們可以知道 Collection 是 List、Set、Queue 的父接口,看到這里,你們可能會問,Map 哪去了?其實,Java 中的容器,包括 Collection 和 Map ,Map 是另外一個體系,所以我們今天先不講 Map 。
3、Collection 的方法Collection 接口定義了以上待實現的方法。比如:
size() 計算容器長度
isEmpty() 是否為空
contains()?是否包含某個對象
containsAll()?是否包含另一個集合的所有對象
iterator()?上層接口?iterable 的方法,用于生成迭代對象,遍歷對象
add() 添加一個對象
add() 添加另一個集合的所有對象
remove() 移除一個對象
removeAll()?移除所有對象
toArray() 把集合轉換成數組
retainAll()?是否與另一個集合有交集
4、List 子接口List 集合的特點是元素有序、可重復,它包含了 ArrayList、Vendor 和 LinkedList 這三個實現類。三者比較如下:
5、Set 子接口Set 集合最大的特點是不允許重復元素,它有 HashSet、TreeSet、LinkedHashSet 、EnumSet 四個實現類,對比如下:
至于EnumSet 類,我還沒研究過怎么使用,在網上查了下,它是專為枚舉類設計的集合類,EnumSet 中的所有元素都必須是指定枚舉類型的枚舉值,具體的這里先不做介紹,待我研究下用法以及場景,再專門介紹。
6、Queue 子接口Queue 用的不多,它常用于模擬隊列這種數據結構,實現 FIFO 等數據結構。通常,隊列不允許隨機訪問隊列中的元素。在工作中,我還沒有使用過,待我研究過,再來跟大家分享。
推薦閱讀:1、java | 什么是動態代理
2、SpringBoot?| 啟動原理
3、SpringBoot | 自動配置原理
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/76008.html
摘要:單線程集合本部分將重點介紹非線程安全集合。非線程安全集合框架的最新成員是自起推出的。這是標準的單線程陣營中唯一的有序集合。該功能能有效防止運行時造型。檢查個集合之間不存在共同的元素。基于自然排序或找出集合中的最大或最小元素。 【編者按】本文作者為擁有十年金融軟件開發經驗的 Mikhail Vorontsov,文章主要概覽了所有標準 Java 集合類型。文章系國內 ITOM 管理平臺 O...
摘要:不相等的對象要具有不相等的哈希碼為了哈希表的操作效率,這一點很重要,但不是強制要求,最低要求是不相等的對象不能共用一個哈希碼。方法和方法協同工作,返回對象的哈希碼。這個哈希碼基于對象的身份生成,而不是對象的相等性。 本文面向 剛學完Java的新手們。這篇文章不講語法,而是一些除了語法必須了解的概念。 將要去面試的初級工程師們。查漏補缺,以免遭遇不測。 目前由于篇幅而被挪出本文的知識...
集合接口 核心集合接口封裝了不同類型的集合,如下圖所示,這些接口允許獨立于其表示的細節來操縱集合,核心集合接口是Java集合框架的基礎,如下圖所示,核心集合接口形成層次結構。 showImg(https://segmentfault.com/img/bVbntJW?w=402&h=146); Set是一種特殊的Collection,SortedSet是一種特殊的Set,依此類推,另請注意,層次結構...
摘要:當使用迭代器訪問集合元素時,中的元素不能被改變,只能通過的方法刪除上一次方法返回的集合元素才可以否則將會引發異常。可以確保集合元素處于有序狀態。返回中所有鍵值對組成的視圖,每個集合元素都是是的內部類對象。這種集合稱為視圖。 1.集合概覽 集合包括兩大接口:Collection 和 Map。 Map TreeMap HashMap LinkedHashMap Collecti...
前言 聲明,本文使用的是JDK1.8 從今天開始正式去學習Java基礎中最重要的東西--->集合 無論在開發中,在面試中這個知識點都是非常非常重要的,因此,我在此花費的時間也是很多,得參閱挺多的資料,下面未必就做到日更了... 當然了,如果講得有錯的地方還請大家多多包涵并不吝在評論去指正~ 一、集合(Collection)介紹 1.1為什么需要Collection Java是一門面向對象的語言,...
閱讀 1331·2019-08-30 15:44
閱讀 1381·2019-08-29 18:42
閱讀 433·2019-08-29 13:59
閱讀 770·2019-08-28 17:58
閱讀 2811·2019-08-26 12:02
閱讀 2414·2019-08-23 18:40
閱讀 2406·2019-08-23 18:13
閱讀 3106·2019-08-23 16:27