收藏 分享(赏)

第6讲_java.util包和集合框架.ppt

上传人:buyk185 文档编号:6639609 上传时间:2019-04-19 格式:PPT 页数:29 大小:243KB
下载 相关 举报
第6讲_java.util包和集合框架.ppt_第1页
第1页 / 共29页
第6讲_java.util包和集合框架.ppt_第2页
第2页 / 共29页
第6讲_java.util包和集合框架.ppt_第3页
第3页 / 共29页
第6讲_java.util包和集合框架.ppt_第4页
第4页 / 共29页
第6讲_java.util包和集合框架.ppt_第5页
第5页 / 共29页
点击查看更多>>
资源描述

1、第六讲 Java.util包 和集合框架,计算机学院 赵卓君,2,回顾,在Java中装箱和拆箱都是自动进行的Math类是final类,里面的方法都是static final方法String类代表的字符串是不可变的,也就是说字符串是常量并且不能改变它们的StringBuffer 类用作构建字符串的构建块,代表可以改变的字符串,计算机学院 赵卓君,3,本讲目标,使用Date和Calendar类来处理日期 使用Random类来生成随机数 集合框架(重点、难点) Collection接口 Iterator接口 List接口:ArrayList类、LinkedList类、Vector类 Set接口:Ha

2、shSet类、TreeSet类 Map接口:HashMap类、TreeMap类 Collections父类,计算机学院 赵卓君,4,英语单词,calendar 日历 collection 集合 date 日期 dictionary 字典 element 元素 hash 哈希 list 列表 map 映射 parse 解析,分列 random 随机 remove 移除 stack 堆栈 vector 矢量,计算机学院 赵卓君,5,Date类,Date类表示日期和时间 提供操纵日期和时间各组成部分的方法 Date类的最佳应用之一是获取系统当前时间,计算机学院 赵卓君,6,Date类构造方法2-1,

3、计算机学院 赵卓君,7,void display() String strDate , strTime = “;System.out.println(“今天的日期是: “ + objDate);long time = objDate.getTime();System.out.println(“自 1970 年 1 月 1 日起“+ “以毫秒为单位的时间 (GMT):“ + time);strDate = objDate.toString();/ 提取 GMT 时间strTime = strDate.substring(11 , (strDate.length() - 4);/ 按小时、分钟和秒

4、提取时间strTime = “时间: “ + strTime.substring(0 , 8);System.out.println(strTime);,Date类构造方法2-2,DateTimeDisplay() objDate = new Date();,使用 getTime() 方法从 Date 对象获取时间,Date 对象用于输出 日期,计算机学院 赵卓君,8,Calendar类,根据给定的 Date 对象,Calendar 类可以以 YEAR 和 MONTH 等整型的形式检索信息 它是抽象的,因此不能实例化 GregorianCalendar:是 Calendar 的子类,实现 Gr

5、egorian 形式的日历,计算机学院 赵卓君,9,Random类-1,该类可以产生随机整数、随机浮点数,计算机学院 赵卓君,10,Random类-2,public int nextInt()方法 返回下一个随机整数,它是此随机数生成器的序列中均匀分布的 int 值。所有 232 个可能 int 值的生成概率大致相同。 public int nextInt(int n) 返回一个随机整数,它是取自此随机数生成器序列的、在 0(包括)和指定值(不包括)之间均匀分布的 int 值。所有可能的 n 个 int 值的生成概率大致相同。,计算机学院 赵卓君,11,为什么需要集合框架?,如何存储每天的新闻

6、信息?,如何存储课程编号与课程信息,能够通过编号方便地获得课程信息?,如果写程序时并不知道程序运行时会需要多少对象,或者需要更复杂的方式存储对象,那么可以使用Java集合框架来解决这类问题,一维数组,一一对应,每天的新闻总数不确定,显然无法再使用数组保存,存储一个班的学员信息,假定一个班容纳20名学员,计算机学院 赵卓君,12,集合框架,集合用于存储、检索和操纵数据 集合框架是用于表示和操纵集合的统一体系结构 集合框架包含三个组件,计算机学院 赵卓君,13,集合框架的优点,提供有用的数据结构和算法,从而减少编程工作 提高了程序速度和质量,因为它提供了高性能的数据结构和算法 允许不同 API 之

7、间的互操作,API之间可以来回传递集合 可以方便地扩展或改写集合,计算机学院 赵卓君,14,集合框架包含的内容,1,接口,Collection,List,Map,2,具体类,List,ArrayList,LinkedList,Map,HashMap,3,算法,Java集合框架为我们提供了一套性能优良、使用方便的接口和类,我们不必再重新发明轮子,只需学会如何使用它们,就可以处理实际应用中出现的问题了 。Java集合框架位于java.util包中,Collections,提供了对集合进行排序、遍历等多种算法实现,如 sort()、reverse()、shuffle(),采用键-值对的存储方式,长度

8、可动态改变,采用线性列表的存储方式,长度可动态改变,Set,不保证元素的顺序,不允许出现重复的元素,Vector,Hashtable,Set,TreeSet,HashSet,计算机学院 赵卓君,15,集合接口,List接口 Map接口 Set接口,元素以线性方式存储 存储的顺序与添加的顺序相同,以键-值的映射来存储元素 键值不允许重复,不保证元素的顺序 不允许重复元素,计算机学院 赵卓君,16,List 接口,允许重复的元素 允许null值 保证元素的顺序 常用的实现该接口的类: ArrayList 类似数组 Vector 矢量 LinkedList 链表 Stack 堆栈(LIFO),计算机

9、学院 赵卓君,17,ArrayList 2-1,ArrayList 对象是长度可变的对象引用数组,类似于动态数组 继承 AbstractList 并实现 List 接口 随着元素的添加,元素的数目会增加,列表也会随着扩展 访问和遍历对象时,它提供更好的性能,计算机学院 赵卓君,18,ArrayList 2-2,ArrayList 类的构造方法包括:,计算机学院 赵卓君,19,Vector 类,计算机学院 赵卓君,20,Set 接口,Set接口不保证元素的顺序,不允许出现重复的元素 实现Set接口的类:HashSet、TreeSet HashSet类不允许出现重复元素,不保证集合中元素的顺序,只

10、允许一个null元素。 TreeSet是Set的一种变体,可以实现按照自然顺序排序。在添加元素时会自动将其插入到已经有序的元素序列中。 字符串按照“字典”的顺序 整数按照数字大小的顺序,HashSet和TreeSet的区别:HashSet不保证元素的顺序,而TreeSet可以自然顺序插入添加的元素,计算机学院 赵卓君,21,Map 接口,使用键值的成对映射来存贮元素 键值不允许重复 常用实现Map接口的类:,计算机学院 赵卓君,22,HashMap 2-1,实现了 Map 接口 用于存储键/值映射关系 不能保证其元素的存储顺序,计算机学院 赵卓君,23,HashMap 2-2,此类的构造方法包

11、括:它在存放键/值时允许值为null 值比如:HashMap map = new HashMap();map.put(“name“,null);,计算机学院 赵卓君,24,Iterator遍历元素接口,Iterator接口可以以统一的方式对各种集合元素进行遍历,也称为“迭代器”。它还可以在遍历元素的同时移除元素。 hasNext()方法检测集合中是否还有下一个元素。 next()方法返回集合中的下一个元素。 Iterator遍历集合元素的语法:,Iterator it = 集合对象名.iterator();while(it.hasNext()Object o=it.next();System.

12、out.println (o);,计算机学院 赵卓君,25,Comparable 接口-1,Java.lang包中定义的一个比较对象的接口 提供抽象方法compareTo(),可以对对象进行整体排序。 使用方法:对要进行比较对象的类实现Comparable接口,重写compareTo()方法 Comparable接口不仅仅用于集合框架,可用于任何需要进行对象比较的场合。,计算机学院 赵卓君,26,Comparable 接口-2,示例: class Student implements Comparableint id;String name;public int compareTo(Objec

13、t obj)Student s=(Student)obj;return this.id-s.id; ,重写Comparable接口的compareTo方法,实现Comparable接口,计算机学院 赵卓君,27,Comparator 接口-1,Java.util包中提供的一个对某个对象集合进行整体排序的比较接口 提供了compare的比较方法来比较对象 使用方法: 定义实现该接口的类,重写compare方法 实例化该类的对象 把该对象作为Collections.sort()方法的参数。,计算机学院 赵卓君,28,Comparator 接口-2,/实现Comparator接口,比较学生的姓名 c

14、lass NameComp implements Comparator/重写compare方法public int compare(Object o1,Object o2)Student s1=(Student)o1;Student s2=(Student)o2;return pareTo(s2.name); public static void main (String args) NameComparator nc=new NameComparator();Collections.sort(al,nc); ,计算机学院 赵卓君,29,总结,Date 类的对象表示当前日期和时间 Calendar 类的对象可以以整型(如 YEAR 和 MONTH 等)的形式检索信息 使用Random类中nextInt()或nextDouble()方法可以生成随机数 使用ArrayList、 HashMap、Vector进行Java编程 List 接口元素以线性方式存储存储的顺序与添加的顺序相同 Set 接口以键-值的映射来存储元素键值不允许重复 Map接口不保证元素的顺序不允许重复元素,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 网络科技 > Java

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报