java中的集合_Java中集合中的基本概念
集合:保存多個其他對象的對象,不能保存簡單類型。
Collection框架的結構如下:
Collection是最基本的集合接口,一個Collection代表一組object,即Collection的元素(Elements)。
Map提供key到value的映射。
List:有序(存放元素的順序),可重復集合。
ArrayList:實質(zhì)就是一個會自動增長的數(shù)組。
查詢效率比較高,增刪的效率比較低,適用于查詢比較頻繁,增刪動作較少的元素管理的集合。
加載大批量數(shù)據(jù)時先進行手動擴容(就是調(diào)用ensureCapacity(int minCapacity)方法),這樣就可以提高效率。
LinkedList:底層是用雙向循環(huán)鏈表來實現(xiàn)的,查詢效率低,但是增刪效率高,適用于增刪動作比較頻繁,查詢次數(shù)較少的元素管理的集合。
Set:無序的,不允許有重復的元素集合。
HashSet:Object類中的hashCode( )的方法時所有類都會繼承的方法,這個方法會算出一個Hash碼值返回,HashSet會用Hash碼值去和數(shù)組長度取模,對象的模值(這個模值就是對象要存放在數(shù)組中的位置,和數(shù)組的下標相同)相同時才會判斷數(shù)組中的元素和要加入的對象的內(nèi)容是否相同,不過不相同才會再找位置添加進去,相同則不允許添加。如果數(shù)組中的元素和要加入的對象的hashCode( )反悔了相同的Hash碼值,才會用equals( )方法來判斷兩個對象的內(nèi)容是否相同。
注意:要存入HashSet的集合對象中的自定義類必須覆蓋hashCode( )、equals( )兩個方法,才能保證集合中元素不重復。
TreeSet:可排序的Set
SortedSet接口是Set的子接口,TreeSet是SortedSet接口的實現(xiàn)類,他可以對集合中的元素進行排序。
將自定義類的對象存放在TreeSet中,這個類需要實現(xiàn)Comparable接口,TreeSet可以自動過濾掉重復元素所以不再需要重載hashCode( )方法,TreeSet會根據(jù)比較規(guī)則判斷元素內(nèi)容是否相同,不同則會存入,TreeSet會在元素存入時就進行排序。
Comparable接口:也叫做可比較接口,這個接口在java.lang包下,只要根據(jù)指定類型的排序規(guī)則實現(xiàn)了這個接口,就是可以排序的。這個接口中只定義了一個compareTo(Object o)方法,該方法的返回值類型是整型,如果當前對象大于參數(shù)對象就返回正數(shù),當前對象等于參數(shù)對象就返回0,當前對象小于參數(shù)對象就返回負數(shù),這樣寫就是升序排列,反之則是降序排列。
Comparator接口:比較器Comparator接口,是另一種對自定義類型對象的集合整體排序的方法,存在于java.util包下。這個接口中定義了一個compare(Object o1,Obeject o2)方法來比較兩個對象,這個方法的返回值定義和上面介紹的那個方法是一樣的。
利用這種方式,則在創(chuàng)建集合的時候把定義好的比較器作為參數(shù),構造一個集合。
Map:存放key-value對(有關系的兩個對象,一個做key,一個做value,同時存入)。
HashMap:基于哈希表的Map接口的實現(xiàn),此實現(xiàn)提供所有可選的映射操作,并允許使用null值和null鍵。
遍歷:
先調(diào)用keySet( )得到key的set集合,再迭代遍歷key的set集合,根據(jù)key得到value。
Hashtable:同HashMap,一般不使用。
HashMap與Hashtable的區(qū)別:
HashMap:非線程安全,不支持并發(fā)控制,允許空的鍵對值。
Hashtable:是線程安全,支持并發(fā)控制,不允許有空的鍵對值。
SortedMap接口:Map的子接口,按某一特定排序規(guī)則來存放所加入的鍵對值。
實現(xiàn)類:TreeMap類。
Key值得排序規(guī)則,同SortedSet接口實現(xiàn)類TreeSet。
注意:
key一般是8種基本類型的封裝類或者是String類,拿自己自定義的類作為Key沒有意義。
key不可重復,value可以重復。
總結
以上是生活随笔為你收集整理的java中的集合_Java中集合中的基本概念的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python互相转换组合_Python基
- 下一篇: 字符串去掉两端的引号_Python3.7