java中l(wèi)ist set map的區(qū)別 list,map,set,三個接口,存取元素時,各有什么特點?
list,map,set,三個接口,存取元素時,各有什么特點?3. 首先,list和set的上層接口是collection接口。列表的底層數(shù)據(jù)按數(shù)組存儲。它有常用的實現(xiàn)類ArrayList和Linke
list,map,set,三個接口,存取元素時,各有什么特點?
3. 首先,list和set的上層接口是collection接口。列表的底層數(shù)據(jù)按數(shù)組存儲。它有常用的實現(xiàn)類ArrayList和LinkedList。向量現(xiàn)在基本上沒用了。Vector和ArrayList是數(shù)組,插入數(shù)據(jù)速度慢,查詢速度快。不同的是vector是線程安全的,所以它的處理速度不如ArrayList快。鏈表是一種鏈表結(jié)構(gòu),可以快速存儲數(shù)據(jù),也可以慢速查詢。4集合最重要的特性是沒有重復(fù)的元素。集合有自己的排序方法,所以取數(shù)的順序不同于存儲的順序。常用的實現(xiàn)類hashsethashset存儲判斷值的哈希值,否則不存儲。map接口是一組鍵值對。鍵不能重復(fù),值也不重要。地圖集也有自己的排序方法。它通常用于實現(xiàn)類HashMap。實際地圖集存儲的是地圖。
List,Map,Set三個接口,存取元素時,各有什么特點?
列表功能:元素按順序排列,元素可以重復(fù)集合功能:元素不按順序排列,元素不能重復(fù)(注意:雖然元素不按順序排列,但元素在集合中的位置由元素的哈希代碼決定,它的位置其實是固定的)地圖特點:元素鍵值對存儲,無需排序(你應(yīng)該知道鍵值是什么吧!)list接口有三個實現(xiàn)類:LinkedList、ArrayList、vector LinkedList。底層實現(xiàn)基于鏈表。鏈表的內(nèi)存比較分散。每個元素存儲自己的內(nèi)存地址和下一個元素的地址。ArrayList和vector的區(qū)別在于:ArrayList是非線程安全且高效的;vector是線程安全且低效的;set接口有兩個實現(xiàn)類:HashSet(底層由HashMap實現(xiàn)),linkedhashset sortedset接口有一個實現(xiàn)類:TreeSet(底層由balanced實現(xiàn))查詢接口有一個實現(xiàn)類:linklist映射接口有三個實現(xiàn)類:HashMap、hashtable和linkehashmap。HashMap是非線程安全、高效的,并且支持null。哈希表是線程安全的,效率低,不支持null。SortedMap有一個實現(xiàn)類:treemap。實際上,最重要的是list用于處理序列,set用于處理集合。已知Map存儲鍵值對。通常,集合是無序的,不重復(fù)。映射kV結(jié)構(gòu)列表已排序
1。集合存儲元素的特征:不允許重復(fù)元素add方法具有布爾返回值。當集合中沒有元素并且add方法可以成功添加元素時,它返回true。當集合包含等于元素的元素時,add方法無法添加元素,返回結(jié)果為false。
2. 列表存儲元素的特性:有一個序列。當同一個元素多次調(diào)用add(object)方法時,添加的對象將按照先到先得的順序排序,或者它們可以跳轉(zhuǎn)隊列。也就是說,可以調(diào)用add(int index,object)方法來指定當前對象在集合中的存儲位置。
3. 映射存儲元素特性:提供從鍵到值的映射。值可以是多值的。地圖由兩列組成。Put方法用于存儲它:Put(obj key,obj value)。每次都應(yīng)存儲一對鍵/值,不能存儲重復(fù)的鍵。這個重復(fù)規(guī)則是等比的。list和set都是單列元素的集合。它們有一個共同的父接口集合。映射不繼承集合接口。Map提供從鍵到值的映射。地圖界面提供了三組視圖。映射的內(nèi)容可以看作是一組鍵集、一組值集或一組鍵值映射。