資源描述:
《java中的map list set等集合類》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、MapListSet等集合類:一、概述在JAVA的util包中有兩個(gè)所有集合的父接口Collection和Map,它們的父子關(guān)系:+Collection這個(gè)接口extends自--java.lang.Iterable接口?├+List(接口代表有序,可重復(fù)的集合。列表)?│├ArreyList??(Class數(shù)組,隨機(jī)訪問,沒有同步,線程不安全)?│├Vector????(Class?數(shù)組?????????同步????線程全)?│├LinkedList??(Class?鏈表?插入刪除?沒有同步?線程不安全)?│└Stack?????(Class)?└+
2、Set(接口不能含重復(fù)的元素。僅接收一次并做內(nèi)部排序,集)?│├HashSet??????(Class)?│├LinkedHashSet?(Class)?│└TreeSet????(Class)+Map(接口)?├+Map(接口映射集合)?│├HashMap??????(Class不同步,線程不安全。除了不同和允許使用null鍵值之外,與Hashtable大致相同)?│├Hashtable?????(Class同步?,線程安全??。不允許實(shí)施null鍵值)?│├+SortedMap接口?││??├TreeMap?????(Class)?│?├WeakH
3、ashMap??(Class)以下對眾多接口和類的簡單說明:首先不能不先說一下數(shù)組(Array)1、效率高,但容量固定且無法動(dòng)態(tài)改變。array還有一個(gè)缺點(diǎn)是,無法判斷其中實(shí)際存有多少元素,length只是告訴我們array的容量。2、Java中有一個(gè)Arrays類,專門用來操作array。???arrays中擁有一組static函數(shù),???equals():比較兩個(gè)array是否相等。array擁有相同元素個(gè)數(shù),且所有對應(yīng)元素兩兩相等。???fill():將值填入array中。???sort():用來對array進(jìn)行排序。???binarySearc
4、h():在排好序的array中尋找元素。???System.arraycopy():array的復(fù)制。一、數(shù)組Array和集合的區(qū)別:1)?數(shù)組是大小固定的,并且同一個(gè)數(shù)組只能存放類型一樣的數(shù)據(jù)(基本類型/引用類型)2)JAVA集合可以存儲和操作數(shù)目不固定的一組數(shù)據(jù)。3)?若程序時(shí)不知道究竟需要多少對象,需要在空間不足時(shí)自動(dòng)擴(kuò)增容量,則需要使用容器類庫,array不適用。二setmaplist的區(qū)別?都是集合接口?set--其中的值不允許重復(fù),無序的數(shù)據(jù)結(jié)構(gòu)??list??--其中的值允許重復(fù),因?yàn)槠錇橛行虻臄?shù)據(jù)結(jié)構(gòu)??map--成對的數(shù)據(jù)結(jié)構(gòu),健值必
5、須具有唯一性(鍵不能同,否則值替換)?List按對象進(jìn)入的順序保存對象,不做排序或編輯操作。Set對每個(gè)對象只接受一次,并使用自己內(nèi)部的排序方法(通常,你只關(guān)心某個(gè)元素是否屬于Set,而不關(guān)心它的順序--否則應(yīng)該使用List)。Map同樣對每個(gè)元素保存一份,但這是基于"鍵"的,Map也有內(nèi)置的排序,因而不關(guān)心元素添加的順序。如果添加元素的順序?qū)δ愫苤匾瑧?yīng)該使用LinkedHashSet或者LinkedHashMap.Collection是對象集合,Collection有兩個(gè)子接口List和SetList可以通過下標(biāo)(1,2..)來取得值,值可以重復(fù)而
6、Set只能通過游標(biāo)來取值,并且值是不能重復(fù)的ArrayList,Vector,LinkedList是List的實(shí)現(xiàn)類ArrayList是線程不安全的,Vector是線程安全的,這兩個(gè)類底層都是由數(shù)組實(shí)現(xiàn)的LinkedList是線程不安全的,底層是由鏈表實(shí)現(xiàn)的?Map是鍵值對集合HashTable和HashMap是Map的實(shí)現(xiàn)類HashTable是線程安全的,不能存儲null值HashMap不是線程安全的,可以存儲null值三、Collections類和Collection接口????????Collections是針對集合類的一個(gè)幫助類,他提供一系列靜
7、態(tài)方法實(shí)現(xiàn)對各種集合的搜索、排序、線程安全化等操作。????Collection是最基本的集合接口,一個(gè)Collection代表一組Object,即Collection的元素(Elements)。一些Collection允許相同的元素而另一些不行。一些能排序而另一些不行。Java?SDK不提供直接繼承自Collection的類,Java?SDK提供的類都是繼承自Collection的“子接口”如List和Set?! ∷袑?shí)現(xiàn)Collection接口的類都必須提供兩個(gè)標(biāo)準(zhǔn)的構(gòu)造函數(shù):無參數(shù)的構(gòu)造函數(shù)用于創(chuàng)建一個(gè)空的Collection,有一個(gè)Collec
8、tion參數(shù)的構(gòu)造函數(shù)用于創(chuàng)建一個(gè)新的Collection,這個(gè)新的Collection與傳入