0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

java數(shù)據(jù)結(jié)構(gòu)有哪些

h1654155282.3538 ? 來(lái)源:陳翠 ? 2019-08-15 16:27 ? 次閱讀

java數(shù)據(jù)結(jié)構(gòu)有哪些

1、List

List是有序的Collection,使用此接口能夠精確的控制每個(gè)元素插入的位置。用戶能夠使用索引(元素在List中的位置,類似于數(shù)組下 》標(biāo))來(lái)訪問(wèn)List中的元素,這類似于Java的數(shù)組。

2、Vector

基于數(shù)組(Array)的List,其實(shí)就是封裝了數(shù)組所不具備的一些功能方便我們使用,所以它難易避免數(shù)組的限制,同時(shí)性能也不可能超越數(shù)組。

另外很重要的一點(diǎn)就是Vector是線程同步的(sychronized)的,這也是Vector和ArrayList 的一個(gè)的重要區(qū)別。

3、ArrayList

同Vector一樣是一個(gè)基于數(shù)組上的鏈表,但是不同的是ArrayList不是同步的。所以在性能上要比Vector好一些,但是當(dāng)運(yùn)行到多線程環(huán)境中時(shí),可需要自己在管理線程的同步問(wèn)題。

4、LinkedList

LinkedList不同于前面兩種List,它不是基于數(shù)組的,所以不受數(shù)組性能的限制。 它每一個(gè)節(jié)點(diǎn)(Node)都包含兩方面的內(nèi)容:節(jié)點(diǎn)本身的數(shù)據(jù)(data),下一個(gè)節(jié)點(diǎn)的信息(nextNode)。

所以當(dāng)對(duì)LinkedList做添加,刪除動(dòng)作的時(shí)候就不用像基于數(shù)組的ArrayList一樣,必須進(jìn)行大量的數(shù)據(jù)移動(dòng)。只要更改nextNode的相關(guān)信息就可以實(shí)現(xiàn)了,這是LinkedList的優(yōu)勢(shì)。

5、HashSet

雖然Set同List都實(shí)現(xiàn)了Collection接口,但是他們的實(shí)現(xiàn)方式卻大不一樣。List基本上都是以Array為基礎(chǔ)。

但是Set則是在 HashMap的基礎(chǔ)上來(lái)實(shí)現(xiàn)的,這就是Set和List的根本區(qū)別。HashSet的存儲(chǔ)方式是把HashMap中的Key作為Set的對(duì)應(yīng)存儲(chǔ)項(xiàng)。

6、HashMap

基于哈希表的 Map 接口的實(shí)現(xiàn)。此實(shí)現(xiàn)提供所有可選的映射操作,并允許使用 null 值和 null 鍵。(除了不同步和允許使用 null 之外,HashMap 類與 Hashtable 大致相同。)此類不保證映射的順序,特別是它不保證該順序恒久不變。

7、HashTable

Hashtable 是一個(gè)散列表,它存儲(chǔ)的內(nèi)容是鍵值對(duì)(key-value)映射。Hashtable 繼承于Dictionary,實(shí)現(xiàn)了Map、Cloneable、java.io.Serializable接口。

Hashtable 的函數(shù)都是同步的,這意味著它是線程安全的。它的key、value都不可以為nul

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • JAVA
    +關(guān)注

    關(guān)注

    19

    文章

    2973

    瀏覽量

    104907
  • 數(shù)據(jù)結(jié)構(gòu)

    關(guān)注

    3

    文章

    573

    瀏覽量

    40164
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    數(shù)據(jù)結(jié)構(gòu)與算法分析(Java版)(pdf)

    數(shù)據(jù)結(jié)構(gòu)與算法分析(Java版)(pdf)http://www.ibeifeng.com/read.php?tid=4812&u=73481【中文】Java數(shù)據(jù)結(jié)構(gòu)和算法中文第
    發(fā)表于 12-20 21:22

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

    1.數(shù)據(jù)結(jié)構(gòu)的概念 所謂數(shù)據(jù)結(jié)構(gòu)是指由某一數(shù)據(jù)對(duì)象及該對(duì)象中所有數(shù)據(jù)成員之間的關(guān)系組成的集合。成員之間的關(guān)系很多種,最常見(jiàn)的是前后件關(guān)系。
    發(fā)表于 03-04 14:13

    java哪幾種數(shù)據(jù)結(jié)構(gòu)

    java單鏈表結(jié)構(gòu)介紹java結(jié)構(gòu)介紹java隊(duì)列結(jié)構(gòu)介紹
    發(fā)表于 11-05 07:01

    數(shù)據(jù)結(jié)構(gòu)教程,下載

    1. 數(shù)據(jù)結(jié)構(gòu)的基本概念 2. 算法與數(shù)據(jù)結(jié)構(gòu)3. C語(yǔ)言的數(shù)據(jù)類型及其算法描述要點(diǎn)4. 學(xué)習(xí)算法與數(shù)據(jù)結(jié)構(gòu)的意義與方法
    發(fā)表于 05-14 17:22 ?0次下載
    <b class='flag-5'>數(shù)據(jù)結(jié)構(gòu)</b>教程,下載

    Java數(shù)據(jù)結(jié)構(gòu)和算法_計(jì)曉云

    Java數(shù)據(jù)結(jié)構(gòu)和算法》以一種易懂的方式教授如何安排和操縱數(shù)據(jù)的問(wèn)題,其中不乏一些難題:了解這些知識(shí)以期使計(jì)算機(jī)的應(yīng)用獲得最好的表現(xiàn)。不管使用何種語(yǔ)言或平臺(tái),掌握了數(shù)據(jù)結(jié)
    發(fā)表于 09-15 14:55 ?0次下載
    <b class='flag-5'>Java</b><b class='flag-5'>數(shù)據(jù)結(jié)構(gòu)</b>和算法_計(jì)曉云

    數(shù)據(jù)結(jié)構(gòu)Java版)

    數(shù)據(jù)結(jié)構(gòu)Java版),個(gè)人收集整理了很久的資料,大家根據(jù)自己情況,選擇性的下載吧~
    發(fā)表于 10-27 14:08 ?0次下載

    數(shù)據(jù)結(jié)構(gòu)是什么_數(shù)據(jù)結(jié)構(gòu)什么用

    數(shù)據(jù)結(jié)構(gòu)是計(jì)算機(jī)存儲(chǔ)、組織數(shù)據(jù)的方式。數(shù)據(jù)結(jié)構(gòu)是指相互之間存在一種或多種特定關(guān)系的數(shù)據(jù)元素的集合。通常情況下,精心選擇的數(shù)據(jù)結(jié)構(gòu)可以帶來(lái)更高
    發(fā)表于 11-17 14:45 ?1.6w次閱讀
    <b class='flag-5'>數(shù)據(jù)結(jié)構(gòu)</b>是什么_<b class='flag-5'>數(shù)據(jù)結(jié)構(gòu)</b><b class='flag-5'>有</b>什么用

    java數(shù)據(jù)結(jié)構(gòu)學(xué)習(xí)

    數(shù)據(jù)結(jié)構(gòu)是對(duì)計(jì)算機(jī)內(nèi)存中的數(shù)據(jù)的一種安排,數(shù)據(jù)結(jié)構(gòu)包括 數(shù)組, 鏈表, 棧, 二叉樹(shù), 哈希表等,算法則對(duì)對(duì)這些結(jié)構(gòu)中的數(shù)據(jù)進(jìn)行各種處理 。
    發(fā)表于 11-29 09:46 ?794次閱讀

    java中幾種常用數(shù)據(jù)結(jié)構(gòu)

    對(duì)于數(shù)組和鏈表這兩種數(shù)據(jù)結(jié)構(gòu),如果要查找它們存儲(chǔ)的某個(gè)特定元素卻不知道它的位置,就需要從頭開(kāi)始訪問(wèn)元素直到找到匹配的為止;如果數(shù)據(jù)結(jié)構(gòu)中包含很多的元素,就會(huì)浪費(fèi)時(shí)間。這時(shí)最好使用散列表來(lái)存儲(chǔ)要查找的數(shù)據(jù)。
    的頭像 發(fā)表于 02-08 16:12 ?1.5w次閱讀
    <b class='flag-5'>java</b>中幾種常用<b class='flag-5'>數(shù)據(jù)結(jié)構(gòu)</b>

    什么是數(shù)據(jù)結(jié)構(gòu)?為什么要學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)?數(shù)據(jù)結(jié)構(gòu)的應(yīng)用實(shí)例分析

    本文檔的主要內(nèi)容詳細(xì)介紹的是什么是數(shù)據(jù)結(jié)構(gòu)?為什么要學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)?數(shù)據(jù)結(jié)構(gòu)的應(yīng)用實(shí)例分析包括了:數(shù)據(jù)結(jié)構(gòu)在串口通信當(dāng)中的應(yīng)用,數(shù)據(jù)結(jié)構(gòu)在按鍵
    發(fā)表于 09-26 15:45 ?14次下載
    什么是<b class='flag-5'>數(shù)據(jù)結(jié)構(gòu)</b>?為什么要學(xué)習(xí)<b class='flag-5'>數(shù)據(jù)結(jié)構(gòu)</b>?<b class='flag-5'>數(shù)據(jù)結(jié)構(gòu)</b>的應(yīng)用實(shí)例分析

    java常見(jiàn)數(shù)據(jù)結(jié)構(gòu)面試

    Java面試過(guò)程中,經(jīng)常會(huì)被問(wèn)到數(shù)據(jù)結(jié)構(gòu)和算法相關(guān)的知識(shí)。對(duì)于工作多年的程序員來(lái)說(shuō),這些理論的知識(shí)可能已經(jīng)忘得差不多了吧,所以面試前還是必要臨時(shí)抱抱佛腳的。
    的頭像 發(fā)表于 08-15 16:09 ?1w次閱讀
    <b class='flag-5'>java</b>常見(jiàn)<b class='flag-5'>數(shù)據(jù)結(jié)構(gòu)</b>面試

    數(shù)據(jù)結(jié)構(gòu)與算法知識(shí)點(diǎn)哪些?

    數(shù)據(jù)結(jié)構(gòu)與算法的知識(shí)點(diǎn)哪些?
    的頭像 發(fā)表于 01-10 15:22 ?8227次閱讀

    數(shù)據(jù)結(jié)構(gòu)哪些知識(shí)重點(diǎn)

    不管你現(xiàn)在是不是需要用到數(shù)據(jù)結(jié)構(gòu)的相關(guān)知識(shí),在工作的過(guò)程中理解、掌握好數(shù)據(jù)結(jié)構(gòu),對(duì)現(xiàn)在的工作和以后的發(fā)展都是幫助的。
    發(fā)表于 03-06 10:05 ?2376次閱讀
    <b class='flag-5'>數(shù)據(jù)結(jié)構(gòu)</b><b class='flag-5'>有</b>哪些知識(shí)重點(diǎn)

    數(shù)據(jù)結(jié)構(gòu)與算法分析——Java語(yǔ)言描述

    數(shù)據(jù)結(jié)構(gòu)與算法分析——Java語(yǔ)言描述說(shuō)明。
    發(fā)表于 05-31 14:25 ?22次下載

    如何理解并掌握Java數(shù)據(jù)結(jié)構(gòu)?

    Java 數(shù)據(jù)結(jié)構(gòu)Java 程序員必須掌握的重要知識(shí)之一。
    的頭像 發(fā)表于 06-06 15:53 ?847次閱讀