標籤:
Collection 介面
公用方法:
1.增 add() addAll()
2.刪 clear() remove() removeAll() retainAll()(取交集)
3.判斷 contains() containsAll() equals() isEmpy()
兩大子介面:
List 介面 有序 重複
ArrayList 類 底層是數組實現的 增刪速度慢 查詢速度快 不同步 效率高
去除其中的相同元素時,較複雜
Vector 類 底層也是數組實現 同步 效率底 增刪速度慢 查詢速度快
LinkedList 類 底層是鏈表實現的 查詢速度慢 增刪速度快
遍曆方法:1.迭代器 2.toArray() 3.get() 和 size() 4.foreach
Set 介面 無序 唯一
HashSet 類 資料結構是雜湊表,實現無序和唯一的方式是通過存入其中對象的hashCode()
方法和equals()方法實現的
TreeSet 類 無序 唯一 排序 底層實現的資料結構是紅/黑樹狀結構 自然排序是通過實現compareable()
介面,重寫compareTo()方法來搞定的 自訂比較子類是實現comparetor介面,重寫
compare()方法來搞定的
共同點:Iterator(迭代器)
通過迭代器來遍曆collection集合 在使用迭代器的過程中不可以使用集合自有的增刪操作,只能
使用Iterator的方法來操作,否在會出現異常
Map 介面 key-value
方法: put()
remove()
clear()
containsKey()
containsValue()
擷取:
keySet()
valuse()
entrySet()
get()
HashMap 雜湊表資料結構 保證唯一性 和無序性
案例:HashMap<String,String>
HashMap<Integer,String>
HashMap<Student,String> 要重寫Student的hashCode()方法和equals()方法
HashMap<String,Student>
TreeMap 紅/黑樹狀結構資料結構 排序 唯一性
案例:TreeMap<String,String>
TreeMap<Integer,String>
TreeMap<Student,String> Student要實現compareable介面,重寫compareTo方法,或者自訂比較類
TreeMap<String,Student>
HashMap和HashTable的區別?
1.HashMap的鍵和值都可以為null
2.HashTable也可以,但是我們一般不這樣用
3.HashTable是同步的
Collections操作類
1.sort
2.binarySearch 找的到就返回索引,找不到就返回(-(插入點)-1)
3.max
4.reverse(逆序)
5.shuffle(洗牌) 使用預設隨機源對列表進行置換
java 集合粗略總結