跳到主要內容

集合物件與泛型(Generic)

  


頻道需要你的支持,謝謝你成為我們的會員(加入會員)


影片1 泛型機制的來龍去脈



影片2 使用 Generic 與 List 搭配多型應用



影片3 可剔除重複值的集合 Set 




影片4 佇列、堆疊、雙向佇列 (Deque)



影片5 自訂識別系統的集合 - Map



影片6 定義本類別物件排序的運算方式 



影片7 定義指定類別物件排序的運算方式



範例


一、泛型(Generic)

專案開發過程中,我們常會使用 Overload 機制,開發多個方法做類似的事情,但接收的參數型態不一樣。在多型的主題中,我們學會了有多個方法名稱相同,參數型態有上下層類別的關係時,我們可以用多型的機制,取代 Overload

若這多個方法的參數列,接收的參數的形態,沒有上下層類別的關係時。就可以使用泛型機制來取代 Overload

1.   宣告與定義支援泛型的類別

class ClassName<T>{

     void methodName(T t){

          //statements

     }

}

2.   使用支援泛型的類別

ClassName <Type> n = new ClassName <Type>();

ClassName <Type> n = new ClassName <>();

二、Collection

線性集合的最上層介面。

1. List

每個元素有獨一無二編號(序號)的串列,集合中的值可以重複,接受 null

l  ArrayList

以陣列模式運算的串列,依序取值速度較快。

l  LinkedList

依傳統串列的方式運算的串列。插入、新增、刪除元素的速度較快。

2. Set

集合中每一個元素的值都是獨一無二的。意圖新增元素到集合中時,要新增的元素的值必須是目前集合中不存在的。如果是集合中已經存在的值,新增就不會成功。

l  HashSet

集合中的元素沒有順序性,也沒有排序。

l  TreeSet

集合中的元素會依值的大小,由小到大排序。

3. Deque

雙向佇列,提供先進先出與後進先出的方法。讓使用者可靈活地依照需求使用。

l  ArrayDeque

三、Map

集合中的每一個元素。都是一組keyValue配對的集合。也就是每一個元素都有2個值。第一個值是 key(鍵值),第2個值才是真正要儲存的值或物件。是一個可以讓使用者自訂識別系統的集合。

1. HashMap

HashSet管理 Key Map

l  TreeMap

HashSet管理 Key Map

四、物件比對(比大小)

1. Comparable

用來定義實作類別的物件的比對方式。

2. Comparator

用來定義指定類別的物件的比對方式。

五、HashCode

類別必須妥善 Override hashcode 方法,它的物件,才能讓 Set 運算。