Java 基本介紹 (4)
教學目標
初步了解 Java 程式語言中集合框架的基本概念。
重點概念
我們都曾聽過資料結構和演算法是程式語言的基礎,但是在 Java 程式語言是否有針對資料結構和演算法優化的框架能夠針對不同情境進行解決方案的應用呢? 事實上在 Java 程式語言中有提供 Collections 框架應用於表示和操作集合的架構,透過 Collections 框架就能夠讓程式設計師根據不同情境應用適當的資料結構和演算法之解決方案,Collections 框架主要包括三個部分,分別為:
- 介面: 主要是表示集合的抽像資料類型,透過介面能夠使得集合獨立於不同表示集合的細節而被進行資料操作的應用。
- 實作: 主要是專注於集合介面的實作,實作之後皆是可重用的資料結構。
- 演算法: 主要是針對實作集合介面的物件進行實用的演算法。
首先 Collections 框架中核心的集合介面主要分為兩大類,第一類是以 Collection 類別為基礎的介面,第二類是以 Map 類別為基礎的介面,其中第一類主要有四種介面,分別為:
- List: 可包含重複元素,並且有順序的集合。
- Set: 不包含重複元素的集合。
- Queue: 被使用於之前保存多個元素,會以先進先出 (FIFO) 的方式排序元素的集合。
- Deque: 被使用於之前保存多個元素,會以先進先出 (FIFO) 或後進先出 (LIFO) 的方式排序元素的集合。
第二類則主要是以 Map 介面為主,主要是將索引值 (Key) 對應至值 (Value) 的集合,其中索引值不能重複,此外 Sort 和 Map 介面的集合是不進行排序,因此 Java 程式語言針對 Sort 和 Map 介面的集合提供 SortedSet 和 SortedMap 的介面進行元素和索引值的排序應用。
總結採用 Collections 框架主要有二大優點,分別為:
- 減少程式開發的負擔,同時增加程式品質和效能: 透過 Collections 框架所提供實用的資料結構和演算法,同時實用的資料結構和演算法皆是以高品質與高效能的方式進行實作,同時每個介面的各種資料結構和演算法實作是可以互相切換。因此我們可以針對不同情境的問題立即轉換程式中的資料結構與演算法以利程式設計師更進一步改進程式的品質和效能。
- 減少學習與設計新 API 的負擔,同時允許不相關的 API 之間進行協同合作: 透過 Collections 框架所提供標準介面的集合操作,就能夠減少程式設計師學習與設計新 API 所造成的負擔,同時集合所提供的資料結構與演算法是可以重複使用。
相關資源
- Lesson: Introduction to Collections
https://docs.oracle.com/javase/tutorial/collections/intro/index.html