新聞中心
List接口的典型實現(xiàn):一個抽象類(AbstractList)實現(xiàn)了List接口:List接口也是實現(xiàn)了Collection接口和Iterable接口,況且List是進行存儲單列數(shù)據(jù)的集合,存儲有順序,允許進行重復(fù)List(接口) AbstractList(抽象類) Vector(類) ArrayList LinkedList Stack(類,繼承于Vector)
List
list1=new ArrayList<>(); List list2=new LinkedList<>(); List list3=new Stack<>(); List list4=new Vector<>(); 創(chuàng)新互聯(lián)是專業(yè)的張家港網(wǎng)站建設(shè)公司,張家港接單;提供網(wǎng)站制作、成都做網(wǎng)站,網(wǎng)頁設(shè)計,網(wǎng)站設(shè)計,建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進行張家港網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團隊,希望更多企業(yè)前來合作!
2.Map和SetMap和Set是一種專門用于進行搜索的容器或者數(shù)據(jù)結(jié)構(gòu),總而言之,set和map存在的意義就是為了讓查找效率提升;比如說以前的搜索方式是直接進行遍歷,時間復(fù)雜度是O(N),但是元素比較多效率會變得非常慢,或者是二分查找,時間復(fù)雜度是log(n),但是前提是數(shù)組順序必須是有序的
set
SortSet HashSet
TreeSet
Map(接口)
SortMap(接口) HashMap
TreeMap
1)map是一個接口類,該類沒有繼承collection類,沒有實現(xiàn)Iterator不能實現(xiàn)迭代器進行打印
2)該類存放的是key-value的鍵值對
,并且要求Key是唯一的,不可以重復(fù) 3)如果再次向map里面放元素,如果Key的值與之前的相同,那么就會更新Value的值;
4)map接口中有TreeMap(實現(xiàn)了sortMap是基于排序的)
1)Map是一個接口,是不可以進行實例化對象的,如果想要實例化對象只能依靠實現(xiàn)類TreeMap或者HashMap
2)Map存放鍵值對的key是唯一的,value是可以重復(fù)的
3)Map中的Key可以全部分離出來,放到Set中進行訪問
4)Map中的Value可以全部分離出來,存儲在Collection中任意一個子集合中(這里面的value很有可能是重復(fù)的)
5)Map鍵值對的Key不能被修改,value可以進行修改,如果想要修改Key,只能先將Key進行刪除,然后再來進行重新插入
6)TreeMap實現(xiàn)了SortMap接口,放入TreeMap的數(shù)據(jù)都是可以進行比較的,都是實現(xiàn)了Compareable接口或者是Compareator接口,其中還不可以進行存放null值
1)但是Set類只可以存放K的值,況且set中不能存放重復(fù)的元素,Set接口實現(xiàn)了Collection接口和Iterator接口,是可以使用迭代器來進行打印的
2)Set只是繼承于Collection接口的一個類
3)底層是使用Map來進行實現(xiàn)的,是使用Key和Object中的一個默認對象作為鍵值對插入到Map里面的
4)Set不能插入空的Key,TreeSet實現(xiàn)了SortSet接口,是可比較的
5)Set大的功能就是針對元素來進行去重
6)Set中的Key是不能進行修改的,如果想進行修改,那么只能把原來的key刪除掉,然后再重新進行插入
TreeSet和HashSet:他們都是線程不安全的1)TreeSet的底層是紅黑樹,但是HashSet的底層是哈希桶
2)TreeSet中的元素插入刪除查找的時間復(fù)雜度是log2(N),因為它是按照紅黑樹的特性來進行刪除的,增刪改查,但是HashSet的增刪改查的時間復(fù)雜度是O(1),先進行計算Hash地址,算出下標(biāo),在進行遍歷鏈表進行增刪改查
3)TreeSet中的元素是關(guān)于Key有序的,因為實現(xiàn)了SortSet接口,但是HashSet是無序的,底層是一個散列表
4)TreeSet要求存儲的元素必須實現(xiàn)Compareble或者是Compator接口,但是HashSet要求存儲自定義對象必須重寫HashCode和equals方法
5)應(yīng)用場景:TreeSet應(yīng)用于key有序的情況下,但是HashSet應(yīng)用于Key無需的情況下
HashMap與HashSet的區(qū)別1)HashMap和HashSet底層實現(xiàn)不一樣,HashSet底層實現(xiàn)了Set,Iterable接口,和Collection接口,HashMap底層只實現(xiàn)了Map接口
2.HashMap中使用put()將元素加入map中,而HashSet使用add()將元素放入set中。
3)HashSet里面的值是可以通過迭代器來進行遍歷里面的值的,但是TreeMap和HashMap是不可以通過迭代器來進行遍歷的
HashSet如何去重?1)HashSet存儲的數(shù)據(jù)結(jié)構(gòu)就是哈希表,也就是數(shù)組和鏈表的混合物,這個類實現(xiàn)了set接口
2)HashSet去重:
HashSet底層依賴的是哈希表,在元素存放的時候,會先根據(jù)元素的hashcode的值來進行判定,如果沒有相同的hashcode值就放入數(shù)組里面·,hashcode是object的方法,每一個對象的hashcode的值是唯一的,所以可以理解成hashcode值表示這個對象在內(nèi)存中的位置,字符串的hashcode(),是根據(jù)內(nèi)容進行計算的,如果hashcode相等,則會用equals()方法來進行比較
Queue:? 1. hashmap put方法源碼 public V put(K key, V value) { return putVal(hash(key), key, value, false, true); } static final int hash(Object key) { int h; return (key == null) ? 0 : (h = key.hashCode()) ^ (h >>>16); } ?
Queue DeQueue PriorityQueue LinkedList Vector Stack
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧
網(wǎng)頁題目:ListMapSet之間的比較-創(chuàng)新互聯(lián)
URL分享:http://fisionsoft.com.cn/article/hhjpg.html