Java--集合基礎(chǔ)

Java基礎(chǔ)部分

1.集合

ArrayList和LinkedList的區(qū)別:
  1)ArrayList是基于動(dòng)態(tài)數(shù)組的數(shù)據(jù)結(jié)構(gòu),LinkerList是基于鏈表的數(shù)據(jù)結(jié)構(gòu);
  2)隨機(jī)訪問的get和set。ArrayList優(yōu)于LinkedList,LinkedList操作需要移動(dòng)指針;
  3)新增,刪除add和remove。LinkedList優(yōu)于ArrayList,ArrayList需要移動(dòng)數(shù)據(jù),主要是生成一個(gè)新的數(shù)組,設(shè)計(jì)到數(shù)據(jù)的拷貝。
集合的區(qū)別
1)Linked 改快讀慢
2)Array 讀快改慢
3)Hash 兩者之間
4)Collection是集合接口
|————Set子接口:無(wú)序,不允許重復(fù)。
|————List子接口:有序,可以有重復(fù)元素。
Set和List對(duì)比:
Set:檢索元素效率低下,刪除和插入效率高,插入和刪除不會(huì)引起元素位置改變。
List:和數(shù)組類似,List可以動(dòng)態(tài)增長(zhǎng),查找元素效率高,插入刪除元素效率低,因?yàn)闀?huì)引起其他元素位置改變。
Set和List具體子類:
Set
 |————HashSet:以哈希表的形式存放元素,插入刪除速度很快。
List
 |————ArrayList:動(dòng)態(tài)數(shù)組    |————LinkedList:鏈表、隊(duì)列、堆棧。
Array和java.util.Vector
Vector是一種老的動(dòng)態(tài)數(shù)組,是線程同步的,效率很低,一般不贊成使用。(synchronized 是 java語(yǔ)言的關(guān)鍵字,當(dāng)它用來修飾一個(gè)方法或者一個(gè)代碼塊的時(shí)候,能夠保證在同一時(shí)刻最多只有一個(gè)線程執(zhí)行該段代碼。)
HashSet

HashSet不允許集合中有重復(fù)值,在將對(duì)象存儲(chǔ)在HashSet前,要先確保對(duì)象重寫equals()和hashCode()方法,這樣才能比較對(duì)象的值是否相等,以確保set中沒有儲(chǔ)存相等的對(duì)象。如果沒有重寫這兩個(gè)方法,會(huì)使用這個(gè)方法的默認(rèn)實(shí)現(xiàn)。
public boolean add(Object o)方法用來在Set中添加元素,當(dāng)元素值重復(fù)時(shí)則會(huì)立即返回false,如果成功添加的話會(huì)返回true。

HashMap

HashMap對(duì)鍵值對(duì)進(jìn)行映射。Map中不允許重復(fù)的鍵。Map接口有兩個(gè)基本的實(shí)現(xiàn),HashMap和TreeMap。TreeMap保存了對(duì)象的排列次序,而HashMap則不能。HashMap允許鍵和值為null。HashMap是非synchronized的,但collection框架提供方法能保證HashMap synchronized,這樣多個(gè)線程同時(shí)訪問HashMap時(shí),能保證只有一個(gè)線程更改Map。
HashMap底層用哈希算法實(shí)現(xiàn),HashSet底層是通過HashMap實(shí)現(xiàn)的.

最后編輯于
?著作權(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)容

  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語(yǔ)法,類相關(guān)的語(yǔ)法,內(nèi)部類的語(yǔ)法,繼承相關(guān)的語(yǔ)法,異常的語(yǔ)法,線程的語(yǔ)...
    子非魚_t_閱讀 34,727評(píng)論 18 399
  • java筆記第一天 == 和 equals ==比較的比較的是兩個(gè)變量的值是否相等,對(duì)于引用型變量表示的是兩個(gè)變量...
    jmychou閱讀 1,648評(píng)論 0 3
  • title: java集合框架學(xué)習(xí)總結(jié) tags:集合框架 categories:總結(jié) date: 2017-03...
    行徑行閱讀 1,821評(píng)論 0 2
  • 從三月份找實(shí)習(xí)到現(xiàn)在,面了一些公司,掛了不少,但最終還是拿到小米、百度、阿里、京東、新浪、CVTE、樂視家的研發(fā)崗...
    時(shí)芥藍(lán)閱讀 42,810評(píng)論 11 349
  • (一)Java部分 1、列舉出JAVA中6個(gè)比較常用的包【天威誠(chéng)信面試題】 【參考答案】 java.lang;ja...
    獨(dú)云閱讀 7,265評(píng)論 0 62

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