集合框架和泛型(一).

Slides:



Advertisements
Similar presentations
index 目次 ( 請按一下滑鼠,解答就會出現喔 !) 接續下頁解答 3-1 極限的概念.
Advertisements

我的未来不是梦 攀枝花市经贸旅游学校. 1. 文中案例王萍苦恼的原因是 什么? 2. 你有哪些办法可以帮助王萍? 导入 思考  谁来帮帮她?
3.2 Java的类 Java 类库的概念 语言规则——程序的书写规范 Java语言 类库——已有的有特定功能的Java程序模块
Java标准类库 福州大学阳光学院 张海歆.
项目6 通用堆栈.
大洋洲.
C语言程序设计 李伟光.
当代 国 际 关 系(案例6) 冷战时期美苏关系的演变.
教學經驗分享 吳毅成 國立交通大學資訊工程系 2012年4月.
“三生教育”专题 生命·生存·生活.
校园信息管理系统 河北科技大学网络中心 2000/4/10.
寻觅节日诗情.
徵收苗栗市福全段147、1588及文心段10、11地號等4筆土地之
第五章 字符串.
實驗五:多媒體播放器選單介面.
讲 义 大家好!根据局领导的指示,在局会计科和各业务科室的安排下,我给各位简要介绍支付中心的工作职能和集中支付的业务流程。这样使我们之间沟通更融洽,便于我们为预算单位提供更优质的服务。 下面我主要从三方面介绍集中支付业务,一是网上支付系统,二是集中支付业务流程及规定等,
中文事件报道结果模式库的建立 导师:李芳 学生:蒋德良.
战 后 国 际 关 系 专题五:冷战时期美苏关系的演变 政治学与行政管理系.
中国人民公安大学经费管理办法(试行) 第一章总则 第四条:“一支笔” “一支笔”--仅指单位主要负责人。负责对本 单位的经费进行审核审批。
第一章 面向对象程序设计.
第2章 数据定义功能 创建表 在关系型数据模型中,表(Table)是最基本的数据结构。
Google App Engine Google 應用服務引擎.
前不久看到了这样一则报道:某个大学校园里,一个大学生出寝室要给室友留一张字条,告诉他钥匙放在哪里。可是“钥匙”两个字他不会写,就问了其他寝室的同学,问了好几个,谁也不会写,没办法,只好用“KEY”来代替了。 请大家就此事发表一下自己看法。
利用共同供應契約 辦理大量訂購流程說明.
第5章 面向对象程序设计 本章要点 5.1 面向对象程序设计概述 5.2 Java语言的面向对象程序设计 5.3 方法的使用和对象数组
4.4 佇列 特徵: c b a c b d c b 新增 d 刪除 入口 入口 入口 尾端(rear) 尾端(rear) 尾端(rear)
親愛的老師您好 感謝您選用本書作為授課教材,博碩文化準備本書精選簡報檔,特別摘錄重點提供給您授課專用。 說明: 博碩文化:
視窗程式設計 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语言----补充.
程式設計實作.
抽象类 File类 String类 StringBuffer类
2018/12/3 面向对象与多线程综合实验-网络编程 教师:段鹏飞.
Java程序设计 第9章 继承和多态.
Spring & mongodb java实战mongodb 曹巍 2013年9月22日.
王豐緒 銘傳大學資訊工程學系 問題:JAVA 物件檔輸出入.
辅导课程十三.
Java集合类.
第 六 章 鏈結串列(Link List) 課程名稱:資料結構 授課老師:________ 2019/1/2.
3.7 Java的工具类.
Introduction to lisp lisp.
本章目标 掌握集合框架包含的内容 掌握ArrayList和LinkedList的使用 掌握HashMap的使用 掌握Iterator的使用
Java集合.
软件测试 (四)静态测试与动态测试.
第二章 Java基本语法 讲师:复凡.
第五章 介面/集合/泛型 注意: 本投影片僅供本書上課教師使用,非經同意請勿上網轉載或供拷貝.
Java變數 2014/6/24.
Java程式初體驗大綱 大綱 在學程式之前及本書常用名詞解釋 Hello Java!程式 在Dos下編譯、執行程式
微信商城系统操作说明 色卡会智能门店.
第二章 Java基本语法 讲师:复凡.
第三章 世界文明的蛻變與互動 第一節 歐洲社會的蛻變 第二節 世界文明的交匯 第三節 亞洲大帝國的發展 1.
兒童及少年保護、 家庭暴力及性侵害事件、 高風險家庭 宣導與通報
Review 1~3.
教育部特殊教育通報網 學生異動、接收操作說明.
第4章 数组与字符串 学习目标 本章要点 上机练习 习 题.
Scala编程
第二章 Java基本语法 讲师:复凡.
C++语言程序设计 第十章 C++标准模板库 成都信息工程学院计算机系.
第6單元 6-1 類別的繼承 (Class Inheritance) 6-2 抽象類別 (Abstract Class)
方格紙上畫正方形.
大綱 一.受試者之禮券/禮品所得稅規範 二.範例介紹 三.自主管理 四.財務室提醒.
第4讲 类和对象、异常处理 ggao.
第 5 章 常用类的使用 伍孝金
银川社保网上申报 宁夏人力资源和社会保障 网上服务大厅操作
6 集合类与泛型.
Presentation transcript:

集合框架和泛型(一)

线上线下 平台预习

本课目标 学完本次课程后,你能够: 了解Java集合框架体系结构 会使用ArrayList存取数据 会使用LinkedList存取数据 要求强调会干什么、能干什么。在目标的重点、难点右侧,插入“重点”、“难点”图片,以引起学员重视。 6 / 38

存储一个班学员信息,假定一个班容纳20名学员 为什么使用集合框架 存储一个班学员信息,假定一个班容纳20名学员 学员1 学员20 一维数组 每天的新闻总数不确定,太少浪费空间,太多空间不足 如何存储每天的新闻信息? 问题 新闻1 …… 新闻N 如何存储课工场课程的代码与课程信息,能够通过代码方便地获得课程信息? 问题 代码1 …… 代码N 一一对应 课程1 …… 课程N 如果并不知道程序运行时会需要多少对象,或者需要 更复杂方式存储对象——可以使用Java集合框架 7 / 38

Java集合框架包含的内容2-1 Java集合框架提供了一套性能优良、使用方便的接口和类,它们位于java.util包中 接口 具体类 算法 Collection Map List Set ArrayList LinkedList HashSet TreeSet HashMap TreeMap 2 具体类 提供了对集合进行排序、 遍历等多种算法实现 Collections 算法 3 8 / 38

List 接口存储一组不唯一,有序(插入顺序)的对象 Java集合框架包含的内容2-2 Collection Collection 接口存储一组 不唯一,无序的对象 List 接口存储一组不唯一,有序(插入顺序)的对象 Set 接口存储一组唯一,无序的对象 Map接口存储一组键值对象,提供key到value的映射 List Set 教学指导: 要说明Map的key和value的特点,key是以Set存储的 9 / 38 6

ArrayList实现了长度可变的数组,在内存中分配连续的空间,遍历元素和随机访问元素的效率比较高 LinkedList采用链表存储方式,插入、删除元素时效率比较高 ArrayList LinkedList 10/ 38

演示示例1:ArrayList获取并打印新闻标题 问题 新闻管理系统,需求如下 可以存储各类新闻标题(包含ID、名称、创建者) 可以获取新闻标题的总数 可以逐条打印每条新闻标题的名称 元素个数不确定 使用集合类 存储方式如何选择? 分析 需要遍历元素 类型:新闻标题 存储对象如何确定? 属性:ID、名称、创建者 演示示例1:ArrayList获取并打印新闻标题 11 / 38

ArrayList集合类2-2 确定存储方式 确定存储对象 具体实现 ArrayList类是List接口的一个具体实现类 随机访问和遍历元素时,它提供更好的性能 确定存储对象 创建类型:新闻标题 包含属性: ID、名称、创建者 具体实现 …… 12 / 38

Collection接口常用通用方法还有:clear()、isEmpty()、iterator()、toArray() ArrayList常用方法 方法名 说明 boolean add(Object o) 在列表的末尾顺序添加元素,起始索引位置从0开始 void add(int index,Object o) 在指定的索引位置添加元素。索引位置必须介于0和列表中元素个数之间 int size() 返回列表中的元素个数 Object get(int index) 返回指定索引位置处的元素。取出的元素是Object类型,使用前需要进行强制类型转换 boolean contains(Object o) 判断列表中是否存在指定元素 boolean remove(Object o) 从列表中删除元素 Object remove(int index) 从列表中删除指定位置元素,起始索引位置从0开始 红色字体方法为Collection接口常用通用方法,即List和Set都适用 Collection接口常用通用方法还有:clear()、isEmpty()、iterator()、toArray() 13 / 38

演示示例2:LinkedList添加和删除新闻标题 问题 新闻管理系统,需求如下 可以添加头条新闻标题 获取头条和最末条新闻标题 可以删除末条新闻标题 元素个数不确定 使用集合类 分析 存储方式如何选择? 需要在列表的头或尾添加、删除元素 演示示例2:LinkedList添加和删除新闻标题 15/ 38

LinkedList集合类2-1 确定存储方式 具体实现 LinkedList类是List接口的一个具体实现类 插入或者删除元素时,它提供更好的性能 具体实现 …… 16 / 38

ArrayList与LinkedList 方法名 说明 void addFirst(Object o) 在列表的首部添加元素 void addLast(Object o) 在列表的末尾添加元素 Object getFirst() 返回列表中的第一个元素 Object getLast() 返回列表中的最后一个元素 Object removeFirst() 删除并返回列表中的第一个元素 Object removeLast() 删除并返回列表中的最后一个元素 ArrayList与LinkedList 17/ 38

ArrayList和LinkedList有何异同? 小结 Java集合框架中包含哪些接口和类? ArrayList和LinkedList有何异同? 提问 19/ 38

Set接口3-1 Set接口存储一组唯一,无序的对象 HashSet是Set接口常用的实现类 Set中存放对象的引用 Set set=new HashSet(); String s1=new String("java"); String s2=s1; String s3=new String("JAVA"); set.add(s1); set.add(s2); set.add(s3); System.out.println(set.size()); 【动画】 1、根据配音显示文字内容 【说辞】 接下来我们要讲解Collection接口的另外一个常用子接口——Set接口, 前面我们讲过了。 Set接口描述的是一种比较简单的一种集合,集合中的对象并不按特定的方式排序,并且不能保存重复的对象 HashSet是Set接口的常用实现类。而Set接口继承了Collection接口,同时没有添加新的方法,所以在使用上与List接口的实现类使用方式一致。【动画:代码出现】 都是有增加元素的add方法和获取元素个数的size方法。所以只需要进行类的替换就可以了。在这里就不做重复讲解了。 但是要注意的是Set接口不存在get方法,也就是没有List接口中通过索引取值的方法。 没有get方法?可能有同学就想了没有get方法Set集合要怎么遍历输出呢? 是呀。List接口是使用for循环通过get方法取出每个对象的方式遍历输出整个集合,Set接口没有get方法要怎么输出呢? 它是通过java集合框架中一个叫迭代器的接口实现遍历输出的。下面我们就来了解一下这个迭代器接口——Iterator接口 2 演示示例3:Set接口的一般用法 20 / 38

Set接口如何判断加入对象是否已经存在呢? 采用对象的equals()方法比较两个对象是否相等 问题 Set set=new HashSet(); String s1=new String("java"); String s2=s1; String s3=new String ("java"); set.add(s1); set.add(s2); set.add(s3); System.out.println(set.size()); 1 【动画】 1、根据配音显示文字内容 【说辞】 接下来我们要讲解Collection接口的另外一个常用子接口——Set接口, 前面我们讲过了。 Set接口描述的是一种比较简单的一种集合,集合中的对象并不按特定的方式排序,并且不能保存重复的对象 HashSet是Set接口的常用实现类。而Set接口继承了Collection接口,同时没有添加新的方法,所以在使用上与List接口的实现类使用方式一致。【动画:代码出现】 都是有增加元素的add方法和获取元素个数的size方法。所以只需要进行类的替换就可以了。在这里就不做重复讲解了。 但是要注意的是Set接口不存在get方法,也就是没有List接口中通过索引取值的方法。 没有get方法?可能有同学就想了没有get方法Set集合要怎么遍历输出呢? 是呀。List接口是使用for循环通过get方法取出每个对象的方式遍历输出整个集合,Set接口没有get方法要怎么输出呢? 它是通过java集合框架中一个叫迭代器的接口实现遍历输出的。下面我们就来了解一下这个迭代器接口——Iterator接口 21/ 38

Set接口3-3 HashSet是Set接口常用的实现类 Set接口不存在get()方法 Set newsTitleSet = new HashSet(); NewTitle car = new NewTitle(1, "汽车", "管理员"); //增加元素 newsTitleSet.add(car); //获取元素个数 System.out.println("新闻标题数目为:" + newsTitleList.size() + "条"); newsTitleSet.get(0); why?如何实现元素输出呢? 【动画】 1、根据配音显示文字内容 【说辞】 接下来我们要讲解Collection接口的另外一个常用子接口——Set接口, 前面我们讲过了。 Set接口描述的是一种比较简单的一种集合,集合中的对象并不按特定的方式排序,并且不能保存重复的对象 HashSet是Set接口的常用实现类。而Set接口继承了Collection接口,同时没有添加新的方法,所以在使用上与List接口的实现类使用方式一致。【动画:代码出现】 都是有增加元素的add方法和获取元素个数的size方法。所以只需要进行类的替换就可以了。在这里就不做重复讲解了。 但是要注意的是Set接口不存在get方法,也就是没有List接口中通过索引取值的方法。 没有get方法?可能有同学就想了没有get方法Set集合要怎么遍历输出呢? 是呀。List接口是使用for循环通过get方法取出每个对象的方式遍历输出整个集合,Set接口没有get方法要怎么输出呢? 它是通过java集合框架中一个叫迭代器的接口实现遍历输出的。下面我们就来了解一下这个迭代器接口——Iterator接口 22 / 38

演示示例4:使用Iterator和增强型for循环遍历Set 问题 如何遍历Set集合呢? 方法1:通过迭代器Iterator实现遍历 获取Iterator :Collection 接口的iterator()方法 Iterator的方法 boolean hasNext(): 判断是否存在另一个可访问的元素 Object next(): 返回要访问的下一个元素 方法2:增强型for循环 教学指导: 说明所有集合接口和类都没有提供相应遍历方法,而是由Iterator实现集合遍历。 分析 演示示例4:使用Iterator和增强型for循环遍历Set 23/ 38

Collection 、List 、Set 、Map接口的联系和区别 ArrayList和LinkedList的异同之处及各自的应用场合 总结 Collection 、List 、Set 、Map接口的联系和区别 ArrayList和LinkedList的异同之处及各自的应用场合 遍历集合的方法 泛型集合用法及好处 36 / 38

问题及作业 集中问题&课后作业

扫我有更多精彩课程呦