1. 程式人生 > 其它 >Mosh_Java筆記 P3-3.2 集合類

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的四種操作||假如我們現在有兩個集合

可以對集合做三種操作(並集,交集 ,補集)

    1. 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

    1. Map的定義(90%以上的情況,我們用到的都是HashMap)
      Map<K,V> map = new HashMap<>();
    1. 往map中存放元素-put
      map.put(1,“羊肉”)
      若存放的是物件,比如定義了個物件cutomer
      var c1 = new Customer("a","email1");
      則存放物件可以用map.put(c1.getEmail(),c1)
    1. 若我們想依據鍵去找對應的value,可以用get方法
      如 var customer = map.get("email1"),get的是鍵e1,則會返回值a

***如果我們找到了一個map中不存在的鍵值, 輸出時會返回null
可以通過設定預設的返回值
例如 我們get了一個e10,但並不存在這樣的鍵

會返回unknown

    1. 查詢是否含有某個鍵
      map.containsKey("") -返回的是一個布林值
    1. 替換鍵值對
      map.repalce("e1",new Customer("a++",e1) ),即設定相同的鍵覆蓋即可

map的輸出

    1. map的遍歷
      由於map介面不可變,不可以用for迴圈迭代map

有三種方法可以遍歷map

    1. 遍歷keySet -會返回鍵對應的鍵
    1. entrySet - 返回一個集合型別,因為集合可以迭代

輸出是這樣的,同時輸出鍵和值

或者我們可以單獨輸出 getKey()或getValue()
for(entry : map.entrySet())
System.out.println(entry.getKey/getValue)

    1. 返回值的集合,同樣也是可迭代的

      返回的是值的集合