JAVA编程高级-集合类.ppt

JAVA编程高级-集合类.ppt

ID:48044489

大小:1.62 MB

页数:38页

时间:2020-01-13

上传者:U-2437
JAVA编程高级-集合类.ppt_第1页
JAVA编程高级-集合类.ppt_第2页
JAVA编程高级-集合类.ppt_第3页
JAVA编程高级-集合类.ppt_第4页
JAVA编程高级-集合类.ppt_第5页
资源描述:

《JAVA编程高级-集合类.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

JAVA编程高级——集合类 集合类目标:集合的功用,JavaAPI中集合有关类和接口的体系结构。Collection接口、List接口、Set接口、Map接口等。集合中的异常。泛型的使用。教学方法:讲授ppt+上机练习 本章要点Java中的集合类Collection接口Set接口List接口Iterator接口Collections类Map接口Map接口集合中的异常泛型的使用 ContentsJava中的集合类1Collection接口2集合中的异常5泛型的使用6Collections类3Map接口4 Java中的集合类集合的概念Java中集合类是用来存放对象的集合相当于一个容器,里面包容着一组对象——容器类其中的每个对象作为集合的一个元素出现JavaAPI提供的集合类位于java.util包内Java中数组与集合的比较数组也是容器,它是定长的,访问较快,但是数组不会自动扩充数组可以包含基本数据类型或引用类型的对象,而集合中只能包含引用类型的对象 Java中的集合类Java中集合框架层次结构 ContentsJava中的集合类1Collection接口2集合中的异常5泛型的使用6Collections类3Map接口4 Colleciton接口Collection接口一组称为元素的对象一个Collection中可以放不同类型的数据是Set接口和List接口的父类是否有特定的顺序以及是否允许重复,取决于它的实现Set-无序的集合;不允许重复HashSetList-有序的集合;允许重复ArrayList、LinkedList Colleciton接口Collection接口的常用方法方法含义booleanadd(Object)集合中加入一个对象,成功时返回truebooleanaddAll(Collection)集合中加入另外一个集合对象intsize()集合内容纳的元素数量booleanisEmpty()集合是否为空booleancontains(Object)集合内是否含有参数对象Iteratoriterator()产生一个迭代器Object[]toArray()返回一个包含所有元素的对象数组 Colleciton接口Collection接口的常用方法方法含义Object[]toArray(Object[])把所有元素放入对象数组中booleanremove(Object)从集合中删除对象booleanremoveAll(Collection)清空指定集合booleancontainsAll(Collection)判断集合内是否包含子集booleanretainAll(Collection)删除子集合不包含的元素voidclear()清空集合Object[]toArray(Object[])把所有元素放入对象数组中 Set接口Set接口示例SetDemo.javaCollection的子接口用来包含一组无序无重复的对象无序—是指元素存入顺序和集合内存储的顺序不同无重复—两个对象e1和e2,如果e1.equals(e2)返回true,则认为e1和e2重复Set有两种主要的集合实现类:HashSet—HashSet的特性在于其内部对象的散列存取,即采用哈希技术TreeSet—TreeSet存入的顺序跟存储的顺序不同,但是存储是按照排序存储的 List接口List接口示例ListDemo.javaCollection的子接口用来包含一组有序有重复的对象List中的元素都对应一个整数型的序号,记载其在容器中的位置,可以根据序号存取容器中的元素List有两种主要的集合实现类:ArrayListLinkedList List接口List接口的常用方法方法含义voidadd(intindex,Objectelement)在列表中的index位置,添加element元素Objectget(intindex)返回列表中指定位置的元素intindexOf(Objecto)在list中查询元素的索引值,如不存在,返回-1。intlastIndexOf(Objecto)List中如果存在多个重复元素,indexOf()方法返回第一个匹配元素的index。lastIndexOf(o)是返回最后一个匹配元素的index.ListIteratorlistIterator()返回列表中元素的列表迭代器Objectremove(intindex)移除列表中指定位置的元素Objectset(intindex,Objectelement)用指定元素替换列表中指定位置的元素 List接口的实现类ArrayList类ArrayList是线性顺序存储的,是一种线性表它的特性和数组很接近,数组大小是不变的,而ArrayList的大小是可以动态改变的ArrayList的构造方法ArrayList变量名=newArrayList();ArrayList变量名=newArrayList(intcapacity);ArrayList变量名=newArrayList(Collectionc); List接口的实现类LinkedList类是数据结构中链表的java实现相对于List来说,LinkedList最主要的功能方面的增强是可以在List的头部和尾部添加、删除、取得元素,直接提供了这些方法的实现。所以它可以非常方便的实现我们数据结构中的常见的Stack(栈)、queue(队列)等LinkedList类的构造方法LinkedList变量名=newLinkedList();LinkedList变量名=newLinkedList(Collectionc); List接口的实现类LinkedList类的特有方法方法含义voidaddFirst(Objecto)将给定元素插入此列表的开头voidaddLast(Objecto)将给定元素追加到此列表的结尾ObjectgetFirst()返回此列表的第一个元素ObjectgetLast()返回此列表的最后一个元素ObjectremoveFirst()移除并返回此列表的第一个元素ObjectremoveLast()移除并返回此列表的最后一个元素 List接口的实现类ArrayList与LinkedList的比较存储结构ArrayList是线性顺序存储LinkedList对象间彼此串连起来的一个链表操作性能ArrayList适合随机查询的场合LinkedList元素的插入和删除操作性高从功能上,LinkedList要多一些 Iterator接口Iterator接口Iterator对象称作迭代器,用来方便的实现对容器内的元素进行遍历操作所有实现了Collection接口的集合类都有一个iterator()方法,返回一个实现了Iterator接口的对象Iterator对象实现了统一的一个用来遍历Collection中对象的方法Iterator是为遍历而设计,能够从集合中取出元素和删除元素,但是没有添加元素的功能Iterator的功能上比较简单,使用中,只能单向移动 Iterator接口Iterator接口的方法示例IteratorDemo.java方法含义Objectnext()返回游标右边的元素并将游标移动到下一个位置booleanhasNext()判断游标右边是否有元素voidremove()删除游标左边的元素,在执行完next之后,该操作只能执行一次 ContentsJava中的集合类1Collection接口2集合中的异常5泛型的使用6Collections类3Map接口4 Collections类CollectionsCollections类是类似于Arrays类的公用工具类,它提供了一些static方法供集合类使用或操作集合类。Collections类中的方法方法含义Objectmax(Collectionc,Comparatorcomp)max算法采用Comparator比较算法Objectmax(collectionc)返回集合中的最大元素,需要考虑比较接口的实现Objectmin(Collectionc)返回集合中的最小元素voidreverse(Collectionc)把集合中的元素顺序反转 Collections类方法含义voidcopy(Listdest,Listsrc)src集合中元素复制到dest集合voidfill(Listlist,Objecto)填充list集合,填充元素为ointbinarySearch(Listlist,Objectkey)对排序后的集合list进行查询元素操作voidsort(Listlist)对一种List做排序Collections类中的方法 ContentsJava中的集合类1Collection接口2集合中的异常5泛型的使用6Collections类3Map接口4 Map接口Map接口Map内存储的是键/值对这样以成对的对象组(可以把一组对象当成一个元素),通过“键”对象来查询“值”对象Map是不同于Collection的另外一种集合接口Map中,key值是唯一的(不能重复),而key对象是与value对象关联在一起的Map接口有两个实现:HashMap—key/value对是按照Hash算法存储的TreeMap—key/value对是排序(按key排序)存储的 Map接口Map接口的常用方法方法含义Objectput(Objectkey,Objectvalue)将指定的值与此映射中的指定键相关联voidputAll(Mapt)将映射t中所有映射关系复制到此映射中Objectget(Objectkey)返回此映射中映射到指定键的值Objectremove(Objectkey)若存在此键的映射关系,将其从映射中移除booleancontainsKey(Objectkey)若此映射包含指定键的映射关系,返回truebooleancontainsValue(Objectvalue)若此映射为指定值映射一个或多个键,返回true Map接口Map接口的常用方法方法含义intsize()返回此映射中的键-值映射对数voidclear()从此映射中移除所有映射关系booleanisEmpty()若此映射未包含键-值映射关系,返回trueSetkeySet()返回此映射中包含的键的set视图 Map接口的实现类HashMap类示例HashMapDemo.java基于哈希表的Map接口的实现HashMap的构造方法HashMap变量名=newHashMap();HashMap变量名=newHashMap(intcapacity);HashMap变量名=newHashMap(intcapacity,floatlodeFactor);HashMap变量名=newHashMap(Mapm); HashMap与TreeMap的比较HashMap与TreeMap的比较HashMap基于哈希表实现。TreeMap基于树实现。HashMap可以通过调优初始容量和负载因子,优化HashMap空间的使用。TreeMap没有调优选项,因为该树总处于平衡状态HashMap性能优于TreeMap。 HashMap与HashTable的比较HashMap与Hashtable的比较Hashtable是基于陈旧的Dictionary类的,HashMap是Java1.2引进的Map接口的一个实现。Hashtable是线程安全的,也就是说是同步的,而HashMap是线程序不安全的,不是同步的。HashMap允许将null作为一个entry的key或者value,而Hashtable不允许。 集合类的选择如何选择集合类Set内存放的元素不允许重复,List存放的元素有一定的顺序。Map的应用主要在利用键/值对进行快速查询。ArrayList和LinkedList的区别在于随机查询性能上ArrayList要好,但LinkedList的中间元素的插入与删除性能好。HashSet和TreeSet的区别在于集合内元素是否排序。 ContentsJava中的集合类1Collection接口2集合中的异常5泛型的使用6Collections类3Map接口4 集合中的异常使用集合类时常见的异常异常类型说明ClassCastException从集合中取得元素对象在进行类型转换的时候类型不匹配UnsupportedOperationException当底层实现没有实现上层的相关方法的时候由Collection抛出该异常。Collection接口(或其他集合超类)中的一些函数在javadoc中是标明”可有可无(Optional)”的函数,这些函数在底层的一些具体实现中,有的实现了,有的没有实现,当我们调用底层实现集合类的这些没有实现的方法时就会抛出该异常。 集合中的异常使用集合类时常见的异常异常类型说明ConcurrentModificationExceptionConcurrentModificationException当采用Iterator遍历集合时,如果此时集合中的元素被改变则Iterator遍历抛出此异常IndexOutOfBoundsException集合中元素引用的索引值超出界限(<0或>size())NoSuchElementExceptionLinkedList中getLast,getFirst等方法取元素的时候List为空 ContentsJava中的集合类1Collection接口2集合中的异常5泛型的使用6Collections类3Map接口4 泛型的使用集合在使用上的问题示例CollectionException.java集合中的add()方法接受的是一个Object对象的参数,在获取集合中的对象时,必须进行造型(强制类型转换)操作。造型操作可能出现问题,一般在程序运行时才能发生,发现问题比较困难。泛型的出现在对象放入集合前,为其作个限制在获取集合中的对象时,不用进行造型的操作当有不同类型的对象添加到集合中的时候,编译时就能检查出错误 泛型的使用泛型的定义泛型经常被称为参数化类型,它能够像方法一样接受不同类型的参数。定义方式E是变量类型ArrayList变量名;ArrayListarr;arr=newArrayList();HashMaphm=newHashMap(); 本章小结Java中的集合类Collection接口Set接口及实现类List接口及实现类集合的遍历Collections类Map接口Map接口及实现类相关实现类的比较集合中的异常泛型的使用 谢谢

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
关闭