1. 程式人生 > >JavaSE基礎(day15)(1)Collection介面(2)List介面(3)Queue介面(4)Set介面

JavaSE基礎(day15)(1)Collection介面(2)List介面(3)Queue介面(4)Set介面

默寫:
1.簡答題
寫出String類中常用的10個方法,要求寫出方法名和功能即可。

2.簡答題
寫出正則表示式中有關數量的規則。

3.畫圖題
畫出集合框架的兩張圖。

今天內容:
(1)Collection介面
(2)List介面
(3)Queue介面
(4)Set介面

1.Collection介面(重點)
1.1 常用的方法
boolean isEmpty() - 用於判斷當前集合中是否為空/是否有元素。
int size() - 用於返回當前集合中元素的個數。

boolean add(E e) - 用於將引數指定的元素放入當前集合,是否成功用返回值表示。
boolean addAll(Collection<? extends E> c)
- 用於將引數指定集合的所有元素放入當前集合中。

boolean remove(Object o) - 用於刪除當前集合中引數指定的單個元素。
boolean removeAll(Collection<?> c)
- 用於將引數指定集合中的所有元素從當前集合中刪除。
void clear() - 用於清空當前集合。

boolean contains(Object o) - 用於判斷引數指定的元素是否存在當前集合中。
boolean containsAll(Collection<?> c)
- 用於判斷引數指定的集合中所有元素是否包含在當前集合中。

boolean retainAll(Collection<?> c) - 用於計算當前集合和引數集合的交集並保留
- 若當前集合由於呼叫而發生更改則返回true,否則返回false。
Iterator iterator() - 用於獲取當前集合的迭代器。

2.List介面(重中之重)
2.1 基本概念
java.util.List介面是Collection介面的子介面,該集合中元素有先後次序,允許重複
該介面的主要實現類有:ArrayList類、LinkedList類、Stack類、Vector類(筆試)。
其中ArrayList類的底層是採用動態陣列實現的,訪問方便,增刪不方便。
其中LinkedList類的底層是採用連結串列實現的,訪問不方便,增刪方便。
其中Stack類(棧)的底層是採用動態陣列實現的,但該集合具有後進先出的特性。
其中Vector類的底層是採用動態陣列實現的,但該類與ArrayList類相比是屬於執行緒安全的類,效率比較低,因此推薦使用ArrayList類。

2.2 常用的方法
void add(int index, E element)
- 用於將引數指定的element元素增加到當前集合的index位置。
- index的取值範圍是:[0 ~ size()]
boolean addAll(int index, Collection<? extends E> c)
- 用於將引數指定集合中的所有元素增加到當前集合的index位置。

E remove(int index) - 用於刪除引數指定下標位置的元素並返回。
E set(int index, E element) - 用於將當前集合中index位置的元素改為element。
E get(int index) - 用於返回當前集合中下標為index位置的元素。

List subList(int fromIndex, int toIndex)
- 用於獲取當前集合中從fromIndex(包含)到toIndex(不包含)之間的部分檢視。

2.3 泛型機制
目前集合中雖然可以存放不同型別的資料,其原因是將所有資料都看做Object型別放入的,但從集合中取出元素並表達真實型別時,需要進行強制型別轉換,該轉換可能引發型別轉換異常。
為了避免上述錯誤的發生,從jdk1.5開始加入泛型的機制,也就是在集合名稱的後面使用<資料型別>的方法明確該集合中元素的型別,若放入其他型別則編譯報錯。
如:

  List<String> l1 = new LinkedList<String>();   

泛型的本質就是引數化資料型別,也就是將資料型別作為實參傳遞給形參E,從而在介面/類體中的E都變成了實參型別。

3.Queue介面(重點)
3.1 基本概你
棧(Stack)是一種具有後進先出特性的資料結構,簡稱為LIFO(last in first out)。
佇列(Queue)是一種具有先進先出特性的資料結構,簡稱為FIFO(first in first out).
java.util.Queue介面是Collection介面的子介面,主要實現類:LinkedList類。

3.2 常用的方法
boolean offer(E e) - 用於將引數指定的元素插入到當前佇列的尾部
- 若插入成功則返回true,否則返回false。
E poll() - 用於將佇列中隊首元素進行出隊操作,若佇列為空則返回null。
- 出隊操作就是移除隊首元素並返回。
E peek() - 用於獲取佇列中的隊首元素並返回,若佇列為空則返回null。

4.Set介面(重點)
4.1 基本概念
java.util.Set介面是Collection介面的子介面,元素沒有先後次序,不能重複。
該介面的主要實現類有:HashSet類 和 TreeSet類。
其中HashSet類的底層是採用一張雜湊表實現的。
其中TreeSet類的底層是採用一棵二叉樹實現的。

4.2 常用的方法
該介面的方法與Collection集合中的方法完全一致。

視訊
javaseday15-作業和Collection方法的使用-01
https://v.qq.com/txp/iframe/player.html?vid=y0798nwb0y8
javaseday15-Collection使用List介面概念-02
https://v.qq.com/txp/iframe/player.html?vid=d0798z8bpro
javaseday15-List介面中方法的使用-03
https://v.qq.com/txp/iframe/player.html?vid=r079889kq9c
javaseday15-List介面方法使用和泛型機制-04
https://v.qq.com/txp/iframe/player.html?vid=j07982p9gyw
javaseday15-Queue介面和Set介面-05
https://v.qq.com/txp/iframe/player.html?vid=n07988m7y42
程式碼
https://pan.baidu.com/s/1KjP7eQsOgRuM_dh2VoFjug

作業:
1.複習和練熟Collection介面和List介面的常用方法。
2.使用List介面實現簡易的學生資訊管理系統,要求列印字元介面提示使用者選擇相應的功能,根據使用者的輸入去實現增加、刪除、修改、查詢以及遍歷所有學生資訊的功能。
其中學生的資訊有:學號、姓名、年齡。
提示:
儘量拆分為多個.java檔案