1.ArrayList
容器的容量"capacity"會隨著對象的增加,自動增長
只需要不斷往容器里增加數(shù)據(jù),不用擔心會出現(xiàn)數(shù)組的邊界問題
ArrayList實現(xiàn)了接口List
List heros = new ArrayList();
//常見的寫法會把引用聲明為接口List
//注意:是java.util.List,而不是java.awt.List
//接口引用指向子類對象(多態(tài))
add增加
contains判斷是否存在
get獲取指定位置的對象
indexOf獲取對象所處的位置
remove刪除 set替換 size獲取大小
toArray轉換為數(shù)組
addAll把另一個容器所有對象都加進來
clear清除
2.泛型 Generic
不指定泛型的容器可以放種類不同的元素
指定泛型的容器只能放這一種類型的元素及其子類
List <hero>genericheros = new ArrayList<hero>();
List <hero> genericheros = new ArrayList()<>;
3.遍歷容器的三種循環(huán)
<1>for
<2>iterator 迭代器
<3>增強for
4.LinkedList 實現(xiàn)了List和Deque(雙向鏈表),Queue接口(隊列)
ArrayList和LinkedList區(qū)別:
ArrayList 順序結構,查找快,刪除插入慢
LinkedList鏈表結構,查找慢,刪除插入快
6.HashMap 儲存數(shù)據(jù)的方式是—— 鍵值對,值可以重復鍵不能重復
7.HashSet 元素無序,嚴格的說,是沒有按照元素的插入順序排列,不能重復
Set不提供get()來獲取指定位置的元素
所以遍歷需要用到迭代器,或者增強型for循環(huán)
HashSet自身并沒有獨立的實現(xiàn),而是在里面封裝了一個Map.HashSet是作為Map的key而存在的
8.Collection與Collections
Collection是 Set List Queue和 Deque的接口
Collections是一個類,容器的工具類,就如同Arrays是數(shù)組的工具類
10.HashMap和Hashtable都實現(xiàn)了Map接口,都是鍵值對保存數(shù)據(jù)的方式
HashMap可以存放 null
Hashtable不能存放null
HashMap不是[線程安全的類]
Hashtable是線程安全的類
11.幾種set
HashSet: 無序
LinkedHashSet: 按照插入順序
TreeSet: 從小到大排序
12.比較器