日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長(zhǎng)提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請(qǐng)做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線(xiàn)咨詢(xún)客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會(huì)員:747

一、集合與數(shù)組的區(qū)別

相同點(diǎn):都是用來(lái)存儲(chǔ)數(shù)據(jù)的。不同點(diǎn):1.集合帶array的,底層由數(shù)組實(shí)現(xiàn),還有一部分由其他方式(樹(shù)、鏈表等)實(shí)現(xiàn)。2.數(shù)組大小固定,而集合沒(méi)有固定的大小,更方便存儲(chǔ)。3.數(shù)組只能放一種類(lèi)型,集合不考慮泛型可以存多種類(lèi)型。4.集合放基本類(lèi)型是通過(guò)裝箱拆箱(包裝類(lèi)與基本數(shù)據(jù)類(lèi)型的轉(zhuǎn)換)來(lái)實(shí)現(xiàn)的。(寫(xiě)泛形的時(shí)候不能用int,而要用Integer)

二、幾種常用集合之間的關(guān)系

Java集合的常見(jiàn)用法你知道多少?

 

Map接口自成一系,是以鍵值對(duì)(Key,Value)方式存儲(chǔ)數(shù)據(jù)的,屬于雙列集合。Set接口的實(shí)現(xiàn)類(lèi): HashSet、LinkedHashSet、TreeSet。List接口的實(shí)現(xiàn)類(lèi):ArrayList、LinkedList、Vector(線(xiàn)程安全)。Queue接口的實(shí)現(xiàn)類(lèi) : LinkedList、PriorityQueue。(沒(méi)怎么用過(guò),混個(gè)臉熟)Map接口的實(shí)現(xiàn)類(lèi):HashMap、TreeMap、Hashtable(線(xiàn)程安全)。

三、每種集合的性質(zhì)

3.1Collection接口(單列)

Collection接口的常用方法:

add(T t) //添加指定元素 
remove(T t) //刪除指定元素 
isEmpty() //集合是否為空 
iterator() //獲得迭代器(Iterator類(lèi)型),一般用于遍歷 
size() //獲得元素的個(gè)數(shù) 
contains(T t) //是否包含某元素

3.1.1.List 有序,可重復(fù)

List接口的常用方法

add(int index, T t) //向指定位置添加元素 
remove(int index) //刪除指定元素 
get(int index) //獲取指定位置的元素 
set(int index, T t) //修改指定位置的元素 
indexOf(T t) //獲取指定元素的位置

ArrayList 底層數(shù)據(jù)結(jié)構(gòu)是數(shù)組,查詢(xún)快,增刪慢。ArrayList的常用方法都是從List繼承來(lái)的,就不多說(shuō)了。LinkedList 底層數(shù)據(jù)結(jié)構(gòu)是鏈表,查詢(xún)慢,增刪快。LinkedList 的常用方法:

getFirst() //獲取第一個(gè)元素 
getLast() //獲取最后一個(gè)元素 
offer(T t) //在最后位置追加元素 
offerFirst(T t) //在開(kāi)頭位置追加元素 
offerLast(T t) //在最后位置追加元素 
removeFirst() //刪除第一個(gè)元素 
removeLast() //刪除最后一個(gè)元素

Vector 底層數(shù)據(jù)結(jié)構(gòu)是數(shù)組,線(xiàn)程安全,效率低。使用方法和ArrayList基本一樣。

3.1.2.Set 不可重復(fù)

方法:常用的都是從Collection繼承到的,就輕松了許多。HashSet (無(wú)序,唯一)底層數(shù)據(jù)結(jié)構(gòu)是哈希表。如何保證唯一:hashCode()和equals()LinkedHashSet(有序,唯一)底層數(shù)據(jù)結(jié)構(gòu)是鏈表和哈希表。鏈表保證有序,哈希表保證唯一。TreeSet(有序,唯一)

底層數(shù)據(jù)結(jié)構(gòu)是紅黑樹(shù)。

1.如何排序(add()方法的重載):自然排序(無(wú)參add()調(diào)用Comparable的compareTo()方法)定制排序 (add(? extends Comparator)調(diào)用類(lèi)實(shí)現(xiàn)的compare()方法)注:裝載時(shí)若自然排序無(wú)法進(jìn)行排序會(huì)報(bào)錯(cuò),所以對(duì)裝進(jìn)集合的類(lèi)實(shí)現(xiàn)Comparator接口進(jìn)行自定義排序

2.如何保證唯一:根據(jù)比較的返回值是否為0來(lái)決定。

3.1.3.Queue 有序(FIFO先進(jìn)先出)

PriorityQueue 有序(定制排序、自然排序(也就是說(shuō)不是所謂的FIFO),我用的少,所以不是特別了解)

3.2Map接口(雙列)

put (K key,V value):把鍵與值添加到Map集合中  
remove (K key):刪除key對(duì)應(yīng)的值  
get(K  key):根據(jù)指定的鍵,獲取對(duì)應(yīng)的值  
containKey(K key):判斷是否包含指定的鍵  
entrySet() :返回Map.Entry型對(duì)象,用于遍歷。(entry.getKey()/entry.getValue()) 
keySet(K key):獲取Map集合中所有的Key,存儲(chǔ)到set集合中(用于遍歷)  
values(V value) :獲取Map集合中所有的Value,存儲(chǔ)到Collection集合中(用于遍歷)

3.2.1HashMap

HashMap的常用方法都繼承自Map接口,就不細(xì)說(shuō)了。HashMap是最常用的鍵值對(duì)存儲(chǔ)容器。

3.2.2.TreeMap

構(gòu)造器:TreeMap()//創(chuàng)建一個(gè)空TreeMap,keys按照自然排序TreeMap(Comparator comparator)//創(chuàng)建一個(gè)空TreeMap,按照自定義的comparator排序。3.2.3.Hashtable(線(xiàn)程安全)

與HashMap的異同:同:Hashtable和HashMap使用方法基本一致。異:HashMap線(xiàn)程不安全,而Hashtable是線(xiàn)程安全的;HashMap的K和V都可以為null,而Hashtable的K,V都不能為null。

四、總結(jié)

1.沒(méi)有其他要求時(shí),最常用ArrayList、HashMap;2.不能重復(fù)時(shí),用HashSet;3.需要線(xiàn)程安全時(shí),用Vector、Hashtable。

分享到:
標(biāo)簽:集合 Java
用戶(hù)無(wú)頭像

網(wǎng)友整理

注冊(cè)時(shí)間:

網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會(huì)員

趕快注冊(cè)賬號(hào),推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過(guò)答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫(kù),初中,高中,大學(xué)四六

運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動(dòng)步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績(jī)?cè)u(píng)定2018-06-03

通用課目體育訓(xùn)練成績(jī)?cè)u(píng)定