Ch13 集合與泛型 物件導向程式設計(2).

Slides:



Advertisements
Similar presentations
3.2 Java的类 Java 类库的概念 语言规则——程序的书写规范 Java语言 类库——已有的有特定功能的Java程序模块
Advertisements

JAVA 编 程 技 术 主编 贾振华 2010年1月.
项目6 通用堆栈.
高等数学绪论 一、《高等数学》学什么? 二、《高等数学》培养学生那些能力? 三、如何考硕士研究生? 四、全国大学生数学建模竞赛是怎么回事?
数据结构 杨鹏宇 QQ: 版权所有,转载或翻印必究
四資二甲 第三週作業 物件導向程式設計.
基于Hadoop的Map/Reduce框架研究报告
面向对象的程序设计(一).
實驗五:多媒體播放器選單介面.
项目:贪吃蛇游戏设计 工作任务一:系统设计(system design) 工作任务二:豆类(Bean)设计
第一章 面向对象程序设计.
601. 汽車零件設計 題目前後相關,請閱讀完這個題組的五個題目之後再作答,每題答案皆能獨立執行。請將需要或共同使用的程式片段撰寫成函式,以供在類別中呼叫使用,避免在不同的類別中重複寫相同的程式碼,否則將酌量扣分。 1.
Google App Engine Google 應用服務引擎.
類別與物件 Class & Object.
類別的繼承-一般關係: 繼承是宣告的類別繼承現存類別的部份或全部的成員資料和方法 , 新增額外的成員資料和方法或覆寫和隱藏繼承類別的方法
AOP实践 演讲人:陈思荣.
C#程序设计 c# programming 泛型 C#程序设计课程组.
佇列 (Queue).
4.4 佇列 特徵: c b a c b d c b 新增 d 刪除 入口 入口 入口 尾端(rear) 尾端(rear) 尾端(rear)
親愛的老師您好 感謝您選用本書作為授課教材,博碩文化準備本書精選簡報檔,特別摘錄重點提供給您授課專用。 說明: 博碩文化:
Chap 3 堆疊與佇列 Stack and Queue.
程式語言 -Visual Basic 變數、常數與資料型態.
第8章 列舉器與集合 注意: 本投影片僅供本書上課教師使用,非經同意請勿上網轉載或供拷貝.
卢斌 Software Development Engineer Microsoft Corporation
程序與函數的類別方法 目的:模組化程式設計 方法:由上而下設計 注意事項:(1)獨立性 (2)結合問題 (3)子問題間的溝通.
2018/11/22 Java语言程序设计-程序流程 教师:段鹏飞.
第16章 VB.NET物件導向與.NET Framework
Java 程式設計 講師:FrankLin.
·线性表的定义及ADT ·线性表的顺序存储结构 ·线性表的链接存储结构 · 单向循环链表 · 双链表、双向循环链表 · 一元多项式的加法
2018/11/27 Java语言程序设计-程序流程 教师:段鹏飞.
厦门大学数据库实验室 MapReduce 连接
JAVA程序设计 第5章 深入理解JAVA语言----补充.
程式設計實作.
导入 STL的概念与组成 Iterator(迭代器) Container(容器) Algorithm(算法) Adaptors(配接器)
2018/12/3 面向对象与多线程综合实验-网络编程 教师:段鹏飞.
Lecture 1 STL Primer.
Java程序设计 第9章 继承和多态.
王豐緒 銘傳大學資訊工程學系 問題:JAVA 物件檔輸出入.
辅导课程十三.
并发机制 结果应该为: 线程 1: 1 线程 1: 2 线程 1: 3 线程 1: 4 线程 1: 5 线程 2: 6 线程 2: 7
Java集合类.
组合模式.
佇列(queue) Lai Ah Fur.
集合框架和泛型(一).
3.7 Java的工具类.
$10 可空类型.
樹 2 Michael Tsai 2013/3/26.
4.2通讯服务模块线程之间传递信息 信息工程系 向模军 Tel: QQ:
Java集合.
第三章 链表 单链表 循环链表 多项式及其相加 双向链表 稀疏矩阵.
潘爱民 C++ Overview 潘爱民
第五章 介面/集合/泛型 注意: 本投影片僅供本書上課教師使用,非經同意請勿上網轉載或供拷貝.
第12章 组合模式 Deng Song
Disjoint Sets Michael Tsai 2013/05/14.
第二章 Java语法基础.
第三章 世界文明的蛻變與互動 第一節 歐洲社會的蛻變 第二節 世界文明的交匯 第三節 亞洲大帝國的發展 1.
Review 1~3.
第 3 章 类的基础部分 陈哲 副教授 南京航空航天大学 计算机科学与技术学院.
第二章 Java基本语法 讲师:复凡.
第4章 数组与字符串 学习目标 本章要点 上机练习 习 题.
Java程序设计 第17章 异常和断言.
C++语言程序设计 第十章 C++标准模板库 成都信息工程学院计算机系.
硬幣遊戲解題詳解 王豐緒 銘傳大學資訊工程學系.
第6單元 6-1 類別的繼承 (Class Inheritance) 6-2 抽象類別 (Abstract Class)
C# 匿名委派 + Lambda + Func 建國科技大學 資管系 饒瑞佶.
JAVA 程式設計與資料結構 第三章 物件的設計.
C++程序语言设计 Chapter 14: Templates.
6 集合类与泛型.
資料結構與C++程式設計進階 C++與資料結構 講師:林業峻 CSIE, NTU 7/ 5, 2010.
Summary
Presentation transcript:

Ch13 集合與泛型 物件導向程式設計(2)

大綱 集合與陣列 集合(collection) Map Set List: ArrayList, Vector, LinkedList Queue: LinkedList, PriorityQueue Map HashMap

集合與陣列 集合 陣列 空間大小 建立時不必指定集合大小 無論存入或移除元素,集合會動態調整空間大小以符合需求 建立時必須指定陣列大小,且無法改變 元素存取時不可超過索引上限,否則會產生OutOfBoundsException 資料類型 可存放任何物件 基本資料類型會自動轉型成對應的物件再存入集合中 放入的物件要搭配泛型,否則會自動轉型成Object 可存放物件或基本資料類型,但必須符合陣列所宣告的資料型態 資料存取 可使用 for-each Iterator物件功能 可使用: for迴圈並搭配索引

集合架構圖 Collection Set SortedSet TreeSet HashSet List ArrayList Vector LinkedList Queue PriorityQueue

Collection介面 常用方法 方法名 功能 boolean add(E ob) 新增物件ob至集合內,新增成功則回傳true,反之為false boolean clear() 將集合內所有元素清空 boolean isEmpty() 檢查集合是不是空的 Iterator iterator() 取得Iterator物件,可透過Iterator方法來走訪集合內所有元素 boolean remove(Object obj) 將指定的元素從集合內移除 int size() 回傳集合內的元素總數 Object [] toArray() 將集合內元素轉存到陣列

泛型 class Book<T> { private T price; public void setPrice(<T> price){ this.price = price; } public <T> getPrice() { return price; //將<T>全被取代為Integer Book<Integer> book1 = new Book<Integer>(); book1.setPrice(580); //將<T>取代成String Book<String> book2 = new Book<String>(); book2.setPrice(“五百八十”); //任何資料型態都可以,但會全變成Object Book book3 = new Book(); book3.setPrice(380.0); 可以使得price可以在使用時才指定資料型態,而且不用宣告多個變數但是代表同一個意義

泛型應用在集合上 集合搭配泛型的功能,就可以像陣列一樣限制元素的資料類型 集合內元素取出後,也會與當初限制的資料類型相同 Collection<T> c = new Set<T>();

Set集合 Set集合內各個元素值不會重複 Set集合內的元素沒有一定的存放順序 HashSet是Set的子類別,所以有相同的特色 SortedSet與Set集合相同,元素值不可重複 SortedSet集合內的元素會做升冪排序

List、ArrayList、LinkedList集合 元素存放順序與新增的順序相同 使用索引,和陣列相同,都使用索引 元素值可重複

List、ArrayList、LinkedList集合的方法 方法名 功能 void add(int index, E element) 將指定物件插入指定索引上 E get(int index) 取得指定索引的元素 E set(int index, E element) 將索引上的元素用element取代

Queqe PriorityQueue LinkedList

Queqe PriorityQueue LinkedList方法 方法名 功能 boolean offer(E o) 將指定物件新增至集合內 E peek() 取得第一順位的元素值,但不會移除該元素 E poll() 取得第一順位的元素值,並同時移除該元素

各種集合的特色 集合名稱 元素值不重複 元素有排序性 元素有順序性 使用索引 先進先出 Set  HashSet SortedSet TreeSet List ArrayList LinkedList Queue PriorityQueue

Map Map不是Collection,可是可以轉成集合,所以也被歸類為集合 使用List或陣列時,透過索引來存取元素,索引從0開始;Map有鍵值組,每一資料含有鍵和一個對應值 Map的鍵如同索引,所以不可以重覆

Map方法 方法名 功能 void clear() 清空Map內所有的鍵值組 V get(Object key) 依鍵取得對應的值 boolean isEmpty() 檢查Map是不是空的容器 Set<K> keySet() 將Map內部的鍵轉存成Set物件 V put(K key, V value) 將指定的鍵值組存放至Map內 V remove(Object key) 依照指定的鍵移除對應的鍵值組 int size() 回傳Map內的鍵值組的總數 Collection <V> values() 將Map內部的值轉存成Collection集合

HashMap SortedMap HashMap 鍵不重複 鍵無順序性,沒有一定的存放順序 SortedMap 鍵具有排序性