6 集合类与泛型.

Slides:



Advertisements
Similar presentations
JAVA 概述 主讲:张雷. J2ME API 地址: 广东科贸信息工程 张雷学习要求 了解各种程序设计语言及其特点 了解各种程序设计语言及其特点 了解 JAVA 的发展史和其特点 了解 JAVA 的发展史和其特点.
Advertisements

第六章 血液系统疾病病人的护理. 第一节 血液系统疾病 常见症状和体征的护理 一、贫血 贫血是血液系统最常见的症状 【护理评估】 (一)病史 贫血发生的速度、贫血的程度 (二)身体评估 评估主要体征,包括皮肤 甲床、粘膜是否苍白、血压的改变、肝 脾淋巴结是否肿大等。 (三)心理 - 社会资料 (四)辅助检查.
3.2 Java的类 Java 类库的概念 语言规则——程序的书写规范 Java语言 类库——已有的有特定功能的Java程序模块
JAVA 程序设计 第7章 工具类及常用算法.
第二章 中药药性理论的现代研究 掌握中药四性的现代研究 掌握中药五味的现代研究 掌握中药毒性的现代研究 了解中药归经的现代研究.
C语言程序设计 李伟光.
教學經驗分享 吳毅成 國立交通大學資訊工程系 2012年4月.
“三生教育”专题 生命·生存·生活.
国学传统与企业文化建设 刘大洋 博士.
阅卷归来话反思 及备考.
寻觅节日诗情.
面向对象程序设计(Java) 徐志红
诸葛亮广场.
實驗五:多媒體播放器選單介面.
中文事件报道结果模式库的建立 导师:李芳 学生:蒋德良.
第六课 我们的 中华文化.
麻风病 福建省疾病预防控制中心 武文斌 电话:
Google App Engine Google 應用服務引擎.
科學科 污染 空氣 成因 的 : 題目 及 減少空氣污染的方法 陳玉玲 (4) 姓名 : 去到目錄.
前不久看到了这样一则报道:某个大学校园里,一个大学生出寝室要给室友留一张字条,告诉他钥匙放在哪里。可是“钥匙”两个字他不会写,就问了其他寝室的同学,问了好几个,谁也不会写,没办法,只好用“KEY”来代替了。 请大家就此事发表一下自己看法。
霸气车辆.
利用共同供應契約 辦理大量訂購流程說明.
Design Patterns Lecture 4.
C#程序设计 c# programming 泛型 C#程序设计课程组.
親愛的老師您好 感謝您選用本書作為授課教材,博碩文化準備本書精選簡報檔,特別摘錄重點提供給您授課專用。 說明: 博碩文化:
第11章 Android GPS位置服务与地图编程
視窗程式設計 9. 清單方塊 Chih Hung Wang Reference:
第8章 列舉器與集合 注意: 本投影片僅供本書上課教師使用,非經同意請勿上網轉載或供拷貝.
2018/11/22 Java语言程序设计-程序流程 教师:段鹏飞.
第16章 VB.NET物件導向與.NET Framework
Ch13 集合與泛型 物件導向程式設計(2).
2018/11/27 Java语言程序设计-程序流程 教师:段鹏飞.
厦门大学数据库实验室 MapReduce 连接
JAVA程序设计 第5章 深入理解JAVA语言----补充.
CH09 套件 物件導向程式設計(II).
第十五章 Linked List, Stack and Queue
导入 STL的概念与组成 Iterator(迭代器) Container(容器) Algorithm(算法) Adaptors(配接器)
职责链模式.
【STL標準樣版函式庫】 STL(Standard Template Library),即標準樣版函式庫,是一個具有工業標準、高效率的C++函式庫。它包含於C++標準函式庫(C++ Standard Library)中,是ANSI/ISO C++標準中,最新的、也是極具革命性的一部分。STL包含了諸多在電腦科學領域裏所常用的基本資料結構和基本演算法。為廣大C++程式師們提供了一個可擴展的應用框架,高度實現了軟體的可複用性。這種現象有些類似於Microsoft.
Spring & mongodb java实战mongodb 曹巍 2013年9月22日.
Java基础入门 第1章 Java开发入门 · Java语言的特点 · Java开发环境的搭建 · 环境变量的配置 · Java的运行机制.
Homework 1(上交时间:10月14号) 倒排索引.
DWR WEB开发交流 1、自我介绍 2、DWR概述 3、DWR DEMO介绍 4、DWR实现机制 5、DWR配置说明 6、JS开发注意事项.
Java集合类.
第 六 章 鏈結串列(Link List) 課程名稱:資料結構 授課老師:________ 2019/1/2.
组合模式.
Lecture: Alex Wang QQ: QQ Group:
集合框架和泛型(一).
第1章 C++程序设计基础 网络游戏开发-C++程序设计.
第一章 Java语言概述.
認識 Java.
Introduction to lisp lisp.
Java集合.
第三章 链表 单链表 循环链表 多项式及其相加 双向链表 稀疏矩阵.
面向对象 程序设计语言基础 马骏
第13章 設計模型 13-1 再談物件導向設計 13-2 建立互動圖 13-3 建立狀態機圖 13-4 設計模型的類別圖
潘爱民 C++ Overview 潘爱民
第五章 介面/集合/泛型 注意: 本投影片僅供本書上課教師使用,非經同意請勿上網轉載或供拷貝.
第12章 组合模式 Deng Song
北投溫泉博物館 建築特色 ★小組成員:高103林孟璇、林念儀、施妤柔★.
第二章 Java基本语法 讲师:复凡.
计算机问题求解 – 论题1-5 - 数据与数据结构 2018年10月16日.
第三章 世界文明的蛻變與互動 第一節 歐洲社會的蛻變 第二節 世界文明的交匯 第三節 亞洲大帝國的發展 1.
兒童及少年保護、 家庭暴力及性侵害事件、 高風險家庭 宣導與通報
Scala编程
C++语言程序设计 第十章 C++标准模板库 成都信息工程学院计算机系.
方格紙上畫正方形.
班級:210 學號:60915 姓名:李佾璇 學號:60935 姓名:趙家瑩 學號:60938 姓名:鄭伊婷
Lambda 學習目標 認識Lambda語法 運用方法參考 瞭解介面預設方法 善用Functional與Stream API
東吳大學『樂齡大學』 外雙溪環境與生態 產業 黃顯宗 東吳大學 微生物學系 101.
Presentation transcript:

6 集合类与泛型

6.0 本章主要内容 集合框架与Collection 接口 SET接口及子类实现 List接口及子类实现 Map接口及子类实现 集合的遍历与Iterator接口 泛型 Collections和Arrays

6.1 集合框架与Collection 接口 集合(Collection) 在程序设计中是一种重要的数据结构,是一系列对象的聚集。java.util包提供了多种重要的集合类的接口和实现,这些集合构成了Java集合框架。 Java集合框架给出了几个简单通用的集合定义. Collection --- A group of objects with no specific ordering; duplicates are permitted, also known as a bag or a multiset List --- ordered collection, duplicates are permitted. Set --- no duplicates are permitted, unordered collection Map --- A map is a collection of arbitrary associations between a key object and a value object

6.1 集合框架与Collection 接口 Collection是最基本的集合接口,它定义了集合框架中一些最基本的方法。

6.2 Set接口及子类实现 Set(集)是一个不包含重复元素的集合,Set接口中的方法都是从Collection继承而来。 HashSet、TreeSet和LinkedHashSet是Set接口的实现类。 比较常用的是HashSet和TreeSet。这两个类相比,HashSet要快,但不提供排序功能,而TreeSet提供排序功能。 TestHashSet.java TestTreeSet.java

6.3 List接口及子类实现 List (列表)是有序的集合 List接口继承了Collection,但又添加了许多按索引操作元素的方法。 ArrayList、Vector和LinkedList是List接口的实现类。 ArrayList和Vector都采用数组来实现,查询集合中的元素快,增加和删除慢。两者不同的是,采用Vector,线程是安全的;采用ArrayList,线程是不安全的,Vector性能上比ArrayList要差。 LinkedList采用链表来实现,增加和删除元素快,查询慢。 TestArrayList.java

6.3 List接口及子类实现(Vector类) Vector(向量)类功能与ArrayList类的功能基本相同,这两个类的多数方法相同。 Vector类实际上可以理解为一个变长的数组。 Vector可以存放各种不同的数据对象。 示例: 向量中保存了5个计算机科学家的姓名。TestVector.java

6.4 Map接口及子类实现 Map (映射)由键值(Key-Value)对组成,Key不可重复,Value可重复,每个Key只能映射一个Value。关键字-值的集合,数据成对装入容器. Map的实现类主要有Hashtable和HashMap。 Map接口是一个独立的接口,不继承Collection接口,和Collection同级接口。 方法:JDK文档 put(),get();remove();

6.4 Map接口及子类实现 TestHashMap.java 作业:Map的一个具体应用,功能是统计字符串数组中单词出现的次数。TestNumberofWords.java

6.5 Collections API- Iterator 每个集合对象都提供一个遍历器,遍历器对象实现Iterator接口,支持前向遍历,而ListIterator支持双向遍历。 问题:用遍历的方法显示前面的HashSet,TreeSet,ArrayList. 见集合遍历例子(Traversing.java)。 TreeSet集合实现了Set接口,它同时还保证元素遍历顺序是升序的。也就是说TreeSet集合中的元素提供比较的算法。 方法 boolean hasNext() Object next(); void remove();

6.6 泛型 Sun公司在JDK1.5之后推出泛型,主要目的是可以建立具有类型安全的集合框架。泛型本质上是指参数化类型,即类、接口、方法中所使用的变量类型由一些参数所指定,分别称为泛型类、泛型接口和泛型方法。 1 泛型类 2 泛型接口 3 泛型类在集合框架中的应用 BasicGeneric.java

6.6 泛型(类) 可以使用“class 名称<泛型列表>”声明一个泛型类,为了与普通类区别,后面加一个“<>”,其内部是泛型参数列表。下面是泛型类声明的例子。 class A<T>; //A是泛型类,T是泛型参数。 class B<T1, T2>; //B是泛型类,T1、T2是泛型参数。

6.7 Collections和Arrays Collections类 排序和查找 TestCollectionsSort.java

6.7 Collections和Arrays TestMethodofCollections .java

6.7 Collections和Arrays Arrays类 Java.util包中提供了专门用于操作数组的Arrays类,该类提供的静态方法实现对数组的操作,主要包括数组的填充、二分查找、排序等。 详解 TestArraySort1.java Arrays类有一个sort(T[ ]a,Comparator c)方法,可以实现对象数组的排序,但定义对象的类需要定义好被排序对象的大小规则,即提供java.util.Comparator接口的实现或对象本身实现java.lang.comparable接口。 TestArraysSortWithComparator.java

选用什么集合? 对于List,它们提供有序集合,如果想通过索引来访问元素,那么这是最佳的选择。数据添加速度快,Vector, ArrayList, LinkedList差不多,LinkedList稍慢一点。对于数据检索,List则很差。 尽管Set集合添加数据的效率稍慢了一些,但它们的检索速度太出众了。不过Set集合拒绝重复元素,并且无序。

总结 1个图 Collection和Map及其子类 5个接口 Collection,Set,List,Map,Iterator,Comparable 2个类 Collections,Arrays 泛型的重点是泛型在集合类中的应用。