1. 程式人生 > >ArrayList、LinkedList、HashSet、TreeSet間的區別和聯絡。

ArrayList、LinkedList、HashSet、TreeSet間的區別和聯絡。


           |--List:元素是有序的,元素可以重複。因為該集合體繫有索引。

                     |--ArrayList:底層的資料結構使用的是有序陣列結構。特點:查詢速度很快O(1)。但是增刪稍慢O(n)。執行緒不同步。

                     |--LinkedList:底層使用的連結串列資料結構。特點:增刪速度很快O(1),查詢稍慢O(n)。執行緒不同步。

                     |--Vector:底層是陣列資料結構。執行緒同步。如果不是多個執行緒操作集合用ArrayList。因為Vector效率低。

           |--

Set:元素是無序(存入和取出的順序不一定一致),元素不可以重複。

                     |--HashSet:底層資料結構是雜湊表。是執行緒不安全的。不同步。保證元素唯一性原理是判斷元素的HashCode是否相同,如果相同還會繼續判斷元素的equals方法是否為true.

                     |--TreeSet: 底層資料結構是二叉排序樹。根據compareTo方法的返回值來判斷元素大小。可以對Set集合中的元素進行排序,可指定按某種規則排序。

相關推薦

ArrayListLinkedListHashSetTreeSet區別聯絡

           |--List:元素是有序的,元素可以重複。因為該集合體繫有索引。                      |--ArrayList:底層的資料結構使用的是有序陣列結構。

Stack棧類與Queue佇列與線性表的區別聯絡

建立順序佇列結構必須為其靜態分配或動態申請一片連續的儲存空間,並設定兩個指標進行管理。一個是隊頭指標front,它指向隊頭元素;另一個是隊尾指標rear,它指向下一個入隊元素的儲存位置,如圖所示   每次在隊尾插入一個元素是,rear增1;每次在隊頭刪除一個元素時,front增1。隨著插入和刪除操作的進行,

java集合類,ListSet比較,各自的子類比較(ArrayList,Vector,LinkedListHashSetTreeSet),Map集合比較

ArrayList,LinkedList,Vector都屬於ListList:元素是有順序的,元素可以重複因為每個元素有自己的角標(索引)|-- ArrayList:底層是陣列結構,特點是:查詢很快,增刪稍微慢點,執行緒不同步:A執行緒將元素放在索引0位置,CPU排程執行緒A停止,B執行,也將元素放在索引0位

集合類:ListSet比較,各自的子類比較(ArrayList,Vector,LinkedListHashSetTreeSet

ArrayList,LinkedList,Vector都屬於List List:元素是有順序的,元素可以重複因為每個元素有自己的角標(索引)   |-- ArrayList:底層的資料結構是陣列結構,特點是:查詢很快,增 刪 稍微慢點,執行緒不同步   |-- Linke

針對初學者瞭解JVMJREJDK三者區別聯絡

      首先說Java程式語言,它是一門高階程式語言,具體由誰何時建立的,讀者可以到網上查詢相關資料,這裡就不再贅述。那麼,談到Java就不得不談談JVM、JRE和JDK三者間的區別和聯絡。       JVM:英文全稱Java Virtual Machine,字面意思

【小家java】POP(面向過程程式設計)OOP(面向物件程式設計)AOP(面向切面程式設計)三種程式設計思想的區別聯絡

相關閱讀 【小家java】java5新特性(簡述十大新特性) 重要一躍 【小家java】java6新特性(簡述十大新特性) 雞肋升級 【小家java】java7新特性(簡述八大新特性) 不溫不火 【小家java】java8新特性(簡述十大新特性) 飽受讚譽 【小家java】java9

【小家java】SessionCookie的區別聯絡分散式session的幾種實現方式

相關閱讀 【小家java】java5新特性(簡述十大新特性) 重要一躍 【小家java】java6新特性(簡述十大新特性) 雞肋升級 【小家java】java7新特性(簡述八大新特性) 不溫不火 【小家java】java8新特性(簡述十大新特性) 飽受讚譽 【小家java】java9

ThreadRunnable的區別聯絡多次start一個執行緒會怎麼樣

一、Java有兩種方式實現多執行緒,第一個是繼承Thread類,第二個是實現Runnable介面。他們之間的聯絡:     1、Thread類實現了Runable介面。   2、都需要重寫裡面Run方法。 二、實現Runnable介面相對於繼承Thread類來說,有如下顯著的好處:

ubuntu中環境變數檔案/etc/profile.profile.bashrc/etc/bash.bashrc之間的區別聯絡(轉)

寫在前面:不同的發行版裡面檔案的命名可能有所不同,如有的發行版etc目錄下有bashrc,有的發行版下面是bash.bashrc。這個根據每個人不同的發行版注意下具體的檔名稱。 /etc/profile:此檔案為系統的每個使用者設定環境資訊,當用戶第一次登入時,該檔案被執行.並從/etc/pro

Web Service平臺有三種元素構成:SOAPWSDLUDDI區別聯絡

Web Service平臺有三種元素構成:SOAP、WSDL、UDDI。一個消費者可以在UDDI登錄檔查詢服務,取得服務的WSDL描述,然後通過SOAP來呼叫服務。SOAP、WSDL、UDDI的區別如下:1. SOAP(Simple Object Access Protocol,簡單物件訪問協議)① SOAP

echo語句print語句print_r有啥區別聯絡

echo語句、print語句、print_r有啥區別和聯絡? **echo是PHP語句, print和print_r是函式,語句沒有返回值,函式可以有返回值(即便沒有用) print() 只能打印出簡單型別變數的值(如int,string)** 例子 <?php $a=

人工智慧機器學習深度學習的區別聯絡

機器學習是一種實現人工智慧的方法,深度學習是一種實現機器學習的技術。 人工智慧 在1956年被提出,2012年之前一直飽受爭議,直到機器學習新演算法(深度學習)的出現,人工智慧迎來了大爆發。 人工智慧研究的分支有很多,包含:專家系統、機器學習、進化計算、模糊邏輯、計算機視覺、自然語言處理

KEILuVisionMDK區別聯絡

--------------------------------------------- -- 時間:2018-11-26 -- 建立人:Ruo_Xiao -- 郵箱:[email protected] ----------------------------------------

淺談程序執行緒協程三者之間的區別聯絡

一、程序、執行緒、協程 1,程序 經典定義:一個執行中程式的例項。系統中的每個程式都執行在某個程序的上下文中。(-摘自 CSAPP) 程序是系統資源分配的最小單位   2,執行緒(thread) 執行緒就是執行在程序上下文中的邏輯流。 執行緒是作業系統能夠進行運算排程的最小單位。 &

人工智慧機器學習深度學習之間的區別聯絡

人工智慧: 人工智慧的研究領域細分圖: 目前的科研工作都集中在弱人工智慧這部分,並很有希望在近期取得重大突破,電影裡的人工智慧多半都是在描繪強人工智慧,而這部分在目前的現實世界裡難以真正實現(通常將人工智慧分為弱人工智慧和強人工智慧,前者讓機器具備觀察和感知的能力,可

Statement PreparedStatement CallableStatement 區別聯絡

1. Statement、PreparedStatement和CallableStatement都是介面(interface)。  2. Statement繼承自Wrapper、PreparedStatement繼承自Statement、CallableStatement繼

塊儲存物件儲存檔案儲存的區別聯絡

塊儲存、物件儲存、檔案儲存的區別和聯絡 塊儲存、物件儲存、檔案儲存的區別和聯絡 通常來講,磁碟陣列都是基於Block塊的儲存,而所有的NAS產品都是檔案級儲存。 1. 塊儲存:DAS   SAN a) DAS(Direct Attach Storage): 是直接

減治分治變治的區別聯絡

減治: 利用了一個問題給定例項的解和同樣問題較小例項的解之間的某種關係,常用的有n和n-1的關係,有了這種關係我們可以自頂向下地遞迴求解,也可以自底向上地迭代實現,從較小例項開始求解這一角度來看減治也叫增量法。 減治法的三種方式: 1***.減常量*** 每次迭

GradleGradle Wrapper與Android Plugin for Gradle的區別聯絡

原文連結:https://www.cnblogs.com/jiangxinnju/p/8229129.html 總結: Gradle:是一個專案構建系統,類似於Maven。Gradle並不是只能用於Android,而是Android引用裡Gradle。https://docs.gradle.

類方法靜態方法例項方法的區別聯絡

Python中至少有三種比較常見的方法型別,即例項方法,類方法、靜態方法。它們是如何定義的呢?如何呼叫的呢?它們又有何區別和作用呢?且看下文。 首先,這三種方法都定義在類中。下面我先簡單說一下怎麼定義和呼叫的。(PS:例項物件的許可權最大。) 例項方法     定義