Java基礎總結 - 集合

Java基礎總結 - 集合
這篇文章只是把大學記的筆記整理到博客,方便自己查看,不保證權威性(•̀ᴗ•́)و ̑̑
Collection(集合)接口:
方法: ①add(Object obj),addAll(Collection coll),size(),clear(),isEmpty();
②remove(Objectobj),removeAll(Collectioncoll),retainAll(Collection coll),equals(Object obj),contains(Object obj)、containsAll(Collectioncoll),hashCode()
③ iterator(),toArray();
|------List(表)接口:存儲有序的,可以重複的元素
新增的方法:刪除remove(int index) 修改set(int index,Object obj) 獲取get(int index)插入add(int index,Object obj)
|------ArrayList(底層用數組實現,適合查操作)
|------LinkedList(用鏈表實現,更適用於頻繁的插入、刪除操作)
|------Vector(矢量)(古老的實現類、線程安全的,但效率要低於ArrayList)
|------Set(集)接口:存儲無序的,不可重複的元素。
Set集合中的元素所在的類一定要重寫equals() 和 hashCode()且等值結果保存一致保持一致(原因可以看hashmap和treemap源碼是如何保住鍵唯一的)
1.無序性:指的是和插入時的順序無關
2.不可重複性:當向Set中添加進相同的元素的時候,後面的這個不能添加進去。
|------HashSet
|------LinkedHashSet(用過一個鏈表保證順序輸出)
|------TreeSet(可以按照添加進集合中的元素的指定屬性進行排序)
要求TreeSet添加進的元素必須是同一個類的!
兩種排序方式:自然排序:①要求添加進TreeSet中的元素所在的類implements Comparable接口
②重寫compareTo(Object obj),在此方法內指明按照元素的哪個屬性進行排序
③向TreeSet中添加元素即可。若不實現此接口,會報運行時異常
定製排序:①創建一個實現Comparator接口的實現類的對象。在實現類中重寫Comparator的compare(Object o1,Object o2)方法
②在此compare()方法中指明按照元素所在類的哪個屬性進行排序
③將此實現Comparator接口的實現類的對象作爲形參傳遞給TreeSet的構造器中
④向TreeSet中添加元素即可。若不實現此接口,會報運行時異常
要求重寫的compareTo()或者compare()方法與equals()和hashCode()方法保持一致。
Map(映射)接口
存儲“鍵-值”對的數據
添加、修改 put(Object key,Object value)  刪除remove(Object key)  獲取get(Object key) size() / keySet() values()  entrySet()
|-----HashMap:主要的實現類,可以添加null鍵,null值(判斷了鍵位null的情況下爲放在hash表0的位置)
|-----LinkedHashMap:是HashMap的子類,可以按照添加進Map的順序實現遍歷
|-----TreeMap:需要按照key所在類的指定屬性進行排序。要求key是同一個類的對象。對key考慮使用自然排序 或 定製排序
鍵值均不能爲空(底層判斷了值不能爲空,而建爲空又會報空指針異常)
|-----Hashtable:是一個古老的實現類,線程安全的,鍵值均不能爲空(底層判斷了值不能爲空,而建爲空又會報空指針異常)
Iterator接口:用來遍歷集合Collection元素
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章