集合/常見的數(shù)據(jù)結(jié)構(gòu)

?????List接口:有序的集合(存儲(chǔ)和取出元素相同);允許存儲(chǔ)重復(fù)的元素;有索引,可以使用普通的for循環(huán)遍歷。Vector集合、ArrayList集合、LinkedList集合。

? ? Set接口:不允許存儲(chǔ)重復(fù)的元素;沒有索引(不能使用普通的for循環(huán)遍歷)。Tree集合、HashSet集合。

Collection是所有單列集合的父接口,因此在Collection中定義了單列集合(List和Set)通用的一些方法,這些方法可用于操作所有的單列集合。方法如下:

* `public boolean add(E e)`:? 把給定的對(duì)象添加到當(dāng)前集合中 。

* `public void clear()` :清空集合中所有的元素。

* `public boolean remove(E e)`: 把給定的對(duì)象在當(dāng)前集合中刪除。

* `public boolean contains(E e)`: 判斷當(dāng)前集合中是否包含給定的對(duì)象。

* `public boolean isEmpty()`: 判斷當(dāng)前集合是否為空。

* `public int size()`: 返回集合中元素的個(gè)數(shù)。

* `public Object[] toArray()`: 把集合中的元素,存儲(chǔ)到數(shù)組中。

????Iterator迭代器

Iterator接口的常用方法如下:

* `public E next()`:返回迭代的下一個(gè)元素。

* `public boolean hasNext()`:如果仍有元素可以迭代,則返回 true。

????泛型

??在創(chuàng)建對(duì)象的時(shí)候確定泛型。

? ? 泛型通配符?,使用迭代器遍歷集合,it.next()方法,取出的是Object。

? ? 泛型的上限限定:?extends E,代表使用的泛型只能是E類型的子類/本身;泛型的下限限定:? super E,代表使用的泛型只能是E類型的父類/本身。


常見的數(shù)據(jù)結(jié)構(gòu)

? ??棧:先進(jìn)后出? ? 隊(duì)列:后進(jìn)先出? ?鏈表:查找元素慢,增刪快

? ??二叉樹:binary tree ,是每個(gè)結(jié)點(diǎn)不超過2的有序樹(tree) 。紅黑樹本身就是一顆二叉查找樹,將節(jié)點(diǎn)插入后,該樹仍然是一顆二叉查找樹。也就意味著,樹的鍵值仍然是有序的。

紅黑樹(查詢速度非??欤┑募s束:

1.節(jié)點(diǎn)可以是紅色的或者黑色的2. 根節(jié)點(diǎn)是黑色的

3. 葉子節(jié)點(diǎn)(特指空節(jié)點(diǎn))是黑色的

4. 每個(gè)紅色節(jié)點(diǎn)的子節(jié)點(diǎn)都是黑色的

5. 任何一個(gè)節(jié)點(diǎn)到其每一個(gè)葉子節(jié)點(diǎn)的所有路徑上黑色節(jié)點(diǎn)數(shù)相同

紅黑樹的特點(diǎn):速度特別快,趨近平衡樹,查找葉子元素最少和最多次數(shù)不多于二倍

????java.util.ArrayList 集合數(shù)據(jù)存儲(chǔ)的結(jié)構(gòu)是數(shù)組結(jié)構(gòu)。元素增刪慢,查找快,由于日常開發(fā)中使用最多的功能為查詢數(shù)據(jù)、遍歷數(shù)據(jù),所以 ArrayList 是最常用的集合。java.util.LinkedList 集合數(shù)據(jù)存儲(chǔ)的結(jié)構(gòu)是鏈表結(jié)構(gòu)。方便元素添加、刪除的集合。

可變參數(shù):修飾符 返回值類型 方法名(參數(shù)類型... 形參名){ }

? ??

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 一、基礎(chǔ)知識(shí):1、JVM、JRE和JDK的區(qū)別:JVM(Java Virtual Machine):java虛擬機(jī)...
    殺小賊閱讀 2,576評(píng)論 0 4
  • 一、基本數(shù)據(jù)類型 注釋 單行注釋:// 區(qū)域注釋:/* */ 文檔注釋:/** */ 數(shù)值 對(duì)于byte類型而言...
    龍貓小爺閱讀 4,477評(píng)論 0 16
  • 四、集合框架 1:String類:字符串(重點(diǎn)) (1)多個(gè)字符組成的一個(gè)序列,叫字符串。生活中很多數(shù)據(jù)的描述都采...
    佘大將軍閱讀 879評(píng)論 0 2
  • 一些概念 數(shù)據(jù)結(jié)構(gòu)就是研究數(shù)據(jù)的邏輯結(jié)構(gòu)和物理結(jié)構(gòu)以及它們之間相互關(guān)系,并對(duì)這種結(jié)構(gòu)定義相應(yīng)的運(yùn)算,而且確保經(jīng)過這...
    Winterfell_Z閱讀 6,618評(píng)論 0 13
  • 本系列出于AWeiLoveAndroid的分享,在此感謝,再結(jié)合自身經(jīng)驗(yàn)查漏補(bǔ)缺,完善答案。以成系統(tǒng)。 Java基...
    濟(jì)公大將閱讀 1,628評(píng)論 1 6

友情鏈接更多精彩內(nèi)容