hashcode是不是地址值 java中對象的哈希碼值是指的什么?
java中對象的哈希碼值是指的什么?任何類都是Object類的間接子類,所以繼承了public int hashCodList,Map,Set三個接口存取元素時,各有什么特點?列表特性:元素按順序排列
java中對象的哈希碼值是指的什么?
任何類都是Object類的間接子類,所以繼承了public int hashCod
List,Map,Set三個接口存取元素時,各有什么特點?
列表特性:元素按順序排列,元素可以重復(fù)。集合特征:元素沒有按順序排列,元素不能重復(fù)(注意:雖然元素沒有按順序排列,但是它們在集合中的位置是由它們的HashCode決定的,它們的位置實際上是固定的)。
Map特性:存儲元素的鍵值對,沒有擺放順序(你應(yīng)該知道什么是鍵值對!List接口有三個實現(xiàn)類:LinkedList、ArrayList和Vector LinkedList:底層基于鏈表,鏈表內(nèi)存分散。每個元素存儲自己的內(nèi)存地址以及下一個元素的地址。
鏈表可以快速增刪,可以發(fā)現(xiàn)慢速ArrayList和Vector的區(qū)別:ArrayList是線程安全高效的;Vector是線程安全的,效率很低。Set接口有兩個實現(xiàn)類:HashSet(底層用HashMap實現(xiàn)),LinkedHashSet SortedSet接口有一個實現(xiàn)類;TreeSet(底層用平衡二叉樹實現(xiàn))查詢接口有一個實現(xiàn)類;LinkList Map接口有三個實現(xiàn)類:HashMap,HashTable,LinkeHashMap HashMap是線程安全的,高效的,支持null;HashTable線程是安全的、低效的,并且不支持null SortedMap。有一個實現(xiàn)類:TreeMap。其實最重要的是list是用來處理序列的,set是用來處理集合的。Map是已知的,存儲的鍵值對集合一般是無序的,不重復(fù)的。繪制kv結(jié)構(gòu)列表是有序的。
3.首先,list和set的上層接口是集合接口。存儲在列表底部的數(shù)據(jù)通過數(shù)組存儲。他有常用的實現(xiàn)類ArrayList和LinkedList。類向量現(xiàn)在基本沒用了。Vector和ArrayList都是數(shù)組,插入數(shù)據(jù)慢,查詢快。Vector的區(qū)別是線程安全的,所以處理速度沒有ArrayList快。LinkedList存儲在鏈表結(jié)構(gòu)中,插入數(shù)據(jù)比較快,查詢比較慢。
集合最大的特點就是沒有重復(fù)的元素,集合集合有自己的排序,所以取出的時候和存放的時候順序不一樣。常用的實現(xiàn)類HashSetHashSet存儲將確定值的哈希值。,同樣的情況下,也不會保存。Map接口是一組鍵值對。鑰匙可以 不可重復(fù),價值不可重復(fù)。;沒關(guān)系。地圖集合也有自己的排序方法,常用的實現(xiàn)類HashMap。實際的地圖收藏存儲地圖。