java JAVA中幾種集合(List、Set和Map)的區(qū)別?
JAVA中幾種集合(List、Set和Map)的區(qū)別? java.util文件在包中,set、list和map是接口。集合中的對象沒有按特定方式排序,并且沒有重復的對象。但是它的一些實現(xiàn)類可以用特定的
JAVA中幾種集合(List、Set和Map)的區(qū)別?
java.util文件
在包中,set、list和map是接口。集合中的對象沒有按特定方式排序,并且沒有重復的對象。但是它的一些實現(xiàn)類可以用特定的方式對集合中的對象進行排序,比如TreeSet類,它可以在默認情況下或通過實現(xiàn)進行排序java.util.Comparator比較程序
接口定義排序方法。列表中的對象根據(jù)索引位置排序,可以有重復的對象,并且可以根據(jù)集合中對象的索引位置檢索對象,例如列表.獲?。╥) 方法獲取列表集合中的元素。映射中的每個元素都包含一個鍵對象和一個值對象,它們成對出現(xiàn)。鍵對象不能復制,值對象可以復制。map的功能和方法:method put(object key,object value)添加一個“value”(你想要什么)和一個與“value”關聯(lián)的“key”(用它來查找)。方法get(objectkey)返回與給定鍵關聯(lián)的值。您可以使用containskey()和containsvalue()來測試映射是否包含“鍵”或“值”。標準Java類庫包含幾個不同的映射:HashMap、treemap、LinkedHashMap、weakhashmap、identityhashmap。它們具有相同的基本接口圖,但在行為、效率、排序策略、保存對象的生命周期、確定“鍵”等價性的策略等方面有所不同。執(zhí)行效率是map的一個大問題。如果您看看get()的作用,就會明白為什么在ArrayList中搜索“keys”相當慢。這就是HashMap加速的地方。HashMap使用一個稱為哈希碼的特殊值,而不是緩慢地搜索鍵。哈希代碼是一個相對唯一的int值,用于表示對象。它是通過轉(zhuǎn)換對象的某些信息而生成的。所有Java對象都可以生成哈希代碼,因為hashcode()是在基類對象中定義的方法。
map,set是一種什么樣的數(shù)據(jù)結(jié)構(gòu)?
Java的數(shù)據(jù)結(jié)構(gòu)是什么?地圖和布景的本質(zhì)區(qū)別是什么? ] ]分析:Java中常見的數(shù)據(jù)結(jié)構(gòu)是collection和map。集合接口包括列表接口和集合接口,其下有許多實現(xiàn)類,如列表下的ArrayList、LinkedList和vector,集合下的HashSet、linkedset和sortedset,HashSet下的linkedhashset子類,sortedset接口下的TreeSet實現(xiàn)類。在map接口下,有HashMap(帶有LinkedHashMap子類)、hashtable(帶有properties子類)實現(xiàn)類和SortedMap接口(帶有treemap實現(xiàn)類)。 ] Java的數(shù)據(jù)結(jié)構(gòu)主要包括list、set、map、ArrayList、HashSet、HashMap、properties等。 ]]map和set的本質(zhì)區(qū)別是:set不能包含重復的元素,最多只能有一個空值。它繼承自集合接口,底層機制是map實現(xiàn)。映射不能包含重復的鍵。每個鍵最多對應一個映射值。不能有空值鍵。這兩個接口提供了不同的方法。