Mosh_Java筆記 P3-3.2 集合類
1. 列表介面
如果只關心集合裡的增加刪除等操作,那麼用集合
如果需要關心集合的順序,索引,則用List列表
集合中不支援索引,而在列表中,假如我們add了'1''2''3',想在list[0]處插入一個新的數字,則可以使用索引
如
list.add(0,"!");如圖
當然由於list仍然屬於集合,我們也可以用集合的方式來操作它,例如新增所有的元素
Colletions.addAll(list,"a""b""c");
但是我們同時可以使用列表的操作,
比如可以通過列表的索引來訪問物件
list.get(0); -返回a
也可以用list的方法來進行賦值,例如
list.set(0,"a+"); -sout(list)會返回[a+,b,c];
也可以通過列表的下表來刪除元素
如:list(0),注意這裡和集合不同,集合裡不能通過索引來刪除元素
也可以查詢元素第一次出現的位置即索引
如list.indexOf("a");則會返回a第一次出現的位置0 ,若沒有搜尋到存在則會返回-1
與之類似的可以返回a最後一次返回的位置,比如我們在list裡末尾再新增一個元素‘a’
可以通過list.lastIndexOf("a"),來返回最後一次a出現的索引位置,即3
還可以返回list的子列表,如
sout(subList(0,2));注意左閉右開,此時輸出會返回一個新列表[a,b]
2. 陣列排序
3. 佇列
4. Set
set的四種操作||假如我們現在有兩個集合
可以對集合做三種操作(並集,交集 ,補集)
-
- Union set1.addAll(set2) 輸出abcd
- 2.Interection set1.retainAll(set2) 輸出set1和set2共有的元素,輸出bc
- 3.Difference set1.removeAll(set2) 移除set1裡所有set2含有的元素再輸出1,即輸出a
5. Hash Table(雜湊表)
6. Map
-
- Map的定義(90%以上的情況,我們用到的都是HashMap)
Map<K,V> map = new HashMap<>();
- Map的定義(90%以上的情況,我們用到的都是HashMap)
-
- 往map中存放元素-put
map.put(1,“羊肉”)
若存放的是物件,比如定義了個物件cutomer
var c1 = new Customer("a","email1");
則存放物件可以用map.put(c1.getEmail(),c1)
- 往map中存放元素-put
-
- 若我們想依據鍵去找對應的value,可以用get方法
如 var customer = map.get("email1"),get的是鍵e1,則會返回值a
- 若我們想依據鍵去找對應的value,可以用get方法
***如果我們找到了一個map中不存在的鍵值, 輸出時會返回null
可以通過設定預設的返回值
例如 我們get了一個e10,但並不存在這樣的鍵
會返回unknown
-
- 查詢是否含有某個鍵
map.containsKey("") -返回的是一個布林值
- 查詢是否含有某個鍵
-
- 替換鍵值對
map.repalce("e1",new Customer("a++",e1) ),即設定相同的鍵覆蓋即可
- 替換鍵值對
map的輸出
-
- map的遍歷
由於map介面不可變,不可以用for迴圈迭代map
- map的遍歷
有三種方法可以遍歷map
-
- 遍歷keySet -會返回鍵對應的鍵
- 遍歷keySet -會返回鍵對應的鍵
-
- entrySet - 返回一個集合型別,因為集合可以迭代
- entrySet - 返回一個集合型別,因為集合可以迭代
輸出是這樣的,同時輸出鍵和值
或者我們可以單獨輸出 getKey()或getValue()
for(entry : map.entrySet())
System.out.println(entry.getKey/getValue)
-
- 返回值的集合,同樣也是可迭代的
返回的是值的集合
- 返回值的集合,同樣也是可迭代的