四種常見的數據結構:
1.堆棧結構:
先進後出的特色。(就像彈夾同樣,先進去的在後進去的低下。)
2.隊列結構:
先進先出的特色。(就像安檢同樣,先進去的先出來)
3.數組結構:
查找元素快,可是增刪元素慢
4.鏈表結構:
增刪元素快,可是查找元素慢數組
LinkedList:(List接口下的一個子類,和ArrayList是同級別關系)
1.底層是鏈表結構
2.它的一些特有方法:
addFirst(E e) : 向集合中的開頭添加元素
addLast(E e):向集合的末尾添加元素
getFirst():獲得集合中的第一個元素
getLast():獲得集合中的最後一個元素
removeFirst():刪除集合中的第一個元素
removeLast():刪除集合中的最後一個元素
pop(E e) : 從集合的最上面彈出一個元素
push():向集合的最上面添加元素
isEmpty() : 判斷集合中是否有爲空
3.在開發時,LinkedList集合也能夠做爲堆棧,隊列的結構使用。在開發時,LinkedList集合也能夠做爲堆棧,隊列的結構使用。
使用的方法是:調用addFirst(E e) 方法和getFirst() 方法安全
Set集合(Set是一個接口,和List同樣,它倆也是同級別關系)
Set集合的遍歷方式只有兩種,1. 加強for 2. 迭代器
Set集合特色:
惟一性,元素不重複
1.Set的子類有:
HashSet、LinkedHashSet
2.HashSet:
a.HashSet是無序的,存取順序不同
b.底層是哈希表結構,一般自定義對象是須要重寫HashCode方法和equals方法
c.HashSet是使用HashCode方法和equals方法來保證元素惟一的
d.判斷原理是:
先判斷HashCode方法
相同:
不添加
不相同:判斷equals方法:
不相同:添加
相同:不添加
LinkedHashSet:
1.LinkedHashSet是有序的,存取順序是同樣的
2.底層是鏈表+哈希表結構。
3.經過鏈表來保證有序。經過哈希表來保證元素的惟一。數據結構
Collection總結:
1.子類:
List、Set(兩個都是接口)
List子類:
ArrayList
LinkedList
Set子類:
HashSet
LinkedHashSet
2.Collection的方法:
boolean add(Object e): 添加
void clear(): 清空
boolean remove(Object o):刪除
boolean contains(Object o): 包含
boolean isEmpty():是否爲空
Iterator iterator():迭代器
int size(): 集合長度
Object toArray(): 將集合存到數組中
3.迭代器:
兩個方法:
hasNext():是否有下一個元素
next(): 獲取下一個元素
4.List和Set的區別:
List:
有序,且可有重複元素
Set:
它是一個無序的集合(元素存與取的順序可能不一樣)
不能夠有重複的元素
5.List集合中的特有方法:(有角標的都是List集合中的)
void add(int index, Object element) 將指定的元素,添加到該集合中的指定位置上
Object get(int index) 返回集合中指定位置的元素。
Object remove(int index) 移除列表中指定位置的元素, 返回的是被移除的元素
Object set(int index, Object element) 用指定元素替換集合中指定位置的元素,返回值的更新前的元素
6.泛型:
好處:
提升了程序的安全性
將運行時期的異常提到的編譯時期
避免了類型轉換工具
Map:(它也是一個接口,它是和Collection同級別的,它是一個雙列集合)
經常使用子類:
HashMap<key , value>:
泛型裏存儲鍵和值,鍵惟一,可是值能夠重複。底層是哈希表結構,基本和HashSet集合差很少,在存儲自定義對象時,須要重寫HashCode方法和equals方法。無序。
LinkedHashMap:
底層是鏈表+哈希表結構。有序,存和取的順序一致。
方法:
put(K,V):添加元素,至關於list集合中的add方法
get(key):獲得key對應的值。
Map遍歷(兩種方式)
1. keySet()方法
轉爲Set對象,獲取Map集合中的鍵集,存儲到Set集合中
而後可以使用加強for或迭代器來獲取鍵和值都經過,鍵來獲取值。
2. entrySet()方法
方法:
getey()
getValue()
轉爲entry對象,獲取Map集合中的鍵和值的映射關係,存儲到entry對象中。
而後,可使用加強for或迭代器來獲取鍵和值。
都經過,鍵來獲取值。spa
Properties類(通常和流一塊使用,它也是Map下的一個子類它是一個能夠持久化的屬性集。鍵值能夠存儲到集合中,也能夠存儲到持久化的設備(硬盤、U盤、光盤)上。鍵值的來源也能夠是持久化的設備。
(有和流技術相結合的方法。)對象
1.public Object setProperty(String key, String value)調用 Map 的方法 put。
2.public Set<String> stringPropertyNames()返回此屬性列表中的鍵集, //keyset()方法
3.public String getProperty(String key)用指定的鍵在此屬性列表中搜索屬性//get()方法
寫入文件的方法:
store(Writer,」文件的描述信息」)
讀取文件的方法:
load(Reader)排序
可變參數:
表現格式爲:
數據類型... 變量名
至關於一個數組。接口
Collections工具類
方法
shuff()隨機打亂方法
sort()排序方法,按照天然規律排序。隊列