新聞中心
JAVA中幾種集合(List、Set和Map)的區(qū)別?
Java中的集合包括三大類(lèi),它們是Set、List和Map。它們都處于
java.util

java.util.Comparator
接口來(lái)自定義排序方式。List中的對(duì)象按照索引位置排序,可以有重復(fù)對(duì)象,允許按照對(duì)象在集合中的索引位置檢索對(duì)象,如通過(guò)list.get(i)方式來(lái)獲得List集合中的元素。Map中的每一個(gè)元素包含一個(gè)鍵對(duì)象和值對(duì)象,它們成對(duì)出現(xiàn)。鍵對(duì)象不能重復(fù),值對(duì)象可以重復(fù)。Map的功能方法 : 方法put(Object key, Object value)添加一個(gè)“值”(想要得東西)和與“值”相關(guān)聯(lián)的“鍵”(key)(使用它來(lái)查找)。方法get(Object key)返回與給定“鍵”相關(guān)聯(lián)的“值”??梢杂胏ontainsKey()和containsValue()測(cè)試Map中是否包含某個(gè)“鍵”或“值”。標(biāo)準(zhǔn)的Java類(lèi)庫(kù)中包含了幾種不同的Map:HashMap, TreeMap, LinkedHashMap, WeakHashMap, IdentityHashMap。它們都有同樣的基本接口Map,但是行為、效率、排序策略、保存對(duì)象的生命周期和判定“鍵”等價(jià)的策略等各不相同。執(zhí)行效率是Map的一個(gè)大問(wèn)題??纯磄et()要做哪些事,就會(huì)明白為什么在ArrayList中搜索“鍵”是相當(dāng)慢的。而這正是HashMap提高速度的地方。HashMap使用了特殊的值,稱(chēng)為“散列碼”(hash code),來(lái)取代對(duì)鍵的緩慢搜索?!吧⒘写a”是“相對(duì)唯一”用以代表對(duì)象的int值,它是通過(guò)將該對(duì)象的某些信息進(jìn)行轉(zhuǎn)換而生成的。所有Java對(duì)象都能產(chǎn)生散列碼,因?yàn)閔ashCode()是定義在基類(lèi)Object中的方法。Java常見(jiàn)的數(shù)據(jù)結(jié)構(gòu)有Collection和Map,其中Collection接口下包括List和Set接口,其下又有多個(gè)實(shí)現(xiàn)類(lèi)如List下有ArrayList、LinkedList和Vector等實(shí)現(xiàn)類(lèi),Set下有HashSet、LinkedSet等實(shí)現(xiàn)類(lèi)和SortedSet接口,HashSet下有LinkedHashSet子類(lèi),SortedSet接口下有TreeSet實(shí)現(xiàn)類(lèi)。Map接口下有HashMap(有LinkedHashMap子類(lèi))、HashTable(有Properties子類(lèi))實(shí)現(xiàn)類(lèi)和SortedMap接口(有TreeMap實(shí)現(xiàn)類(lèi))。
JAVA的數(shù)據(jù)結(jié)構(gòu)主要有List、Set、Map、ArrayList、HashSet、HashMap、Properties等。
Map與Set的本質(zhì)區(qū)別有:Set不能包含重復(fù)的元素,最多有一個(gè)空值,繼承自Collection接口,底層是Map實(shí)現(xiàn)機(jī)制。Map不能包含重復(fù)的鍵,每個(gè)鍵最多對(duì)應(yīng)一個(gè)映射的值,不能有空值鍵。兩接口提供的方法不完全一樣。析:Java常見(jiàn)的數(shù)據(jù)結(jié)構(gòu)有Collection和Map,其中Collection接口下包括List和Set接口,其下又有多個(gè)實(shí)現(xiàn)類(lèi)如List下有ArrayList、LinkedList和Vector等實(shí)現(xiàn)類(lèi),Set下有HashSet、LinkedSet等實(shí)現(xiàn)類(lèi)和SortedSet接口,HashSet下有LinkedHashSet子類(lèi),SortedSet接口下有TreeSet實(shí)現(xiàn)類(lèi)。Map接口下有HashMap(有LinkedHashMap子類(lèi))、HashTable(有Properties子類(lèi))實(shí)現(xiàn)類(lèi)和SortedMap接口(有TreeMap實(shí)現(xiàn)類(lèi))。
JAVA的數(shù)據(jù)結(jié)構(gòu)主要有List、Set、Map、ArrayList、HashSet、HashMap、Properties等。
Map與Set的本質(zhì)區(qū)別有:Set不能包含重復(fù)的元素,最多有一個(gè)空值,繼承自Collection接口,底層是Map實(shí)現(xiàn)機(jī)制。Map不能包含重復(fù)的鍵,每個(gè)鍵最多對(duì)應(yīng)一個(gè)映射的值,不能有空值鍵。兩接口提供的方法不完全一樣。
到此,以上就是小編對(duì)于java集合有哪幾種類(lèi)型的問(wèn)題就介紹到這了,希望這1點(diǎn)解答對(duì)大家有用。
新聞名稱(chēng):java集合有哪幾種
鏈接URL:http://www.dlmjj.cn/article/djgdoii.html


咨詢(xún)
建站咨詢(xún)
