四種常見的數據結構: 1.堆棧結構: 先進後出的特點。(就像彈夾一樣,先進去的在後進去的低下。) 2.隊列結構: 先進先出的特點。(就像安檢一樣,先進去的先出來) 3.數組結構: 查找元素快,但是增刪元素慢 4.鏈表結構: 增刪元素快,但是查找元素慢 LinkedList:(List介面下的一個子類 ...
四種常見的數據結構:
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或迭代器來獲取鍵和值。
都通過,鍵來獲取值。
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()排序方法,按照自然規律排序。