- 3
- 0
- 约4.28千字
- 约 38页
- 2016-11-27 发布于河南
- 举报
第7章-集合框架
Java集合框架 线性表 链表 哈希表 包Java.util Java.Util包概述 接口 Collection接口 Collection是最基本的集合接口,一个Collection代表一组Object,即Collection的元素(Elements) 一些Collection允许相同的元素而另一些不行 一些能排序而另一些不行。 Java SDK不提供直接实现自Collection的类,Java SDK提供的类都是实现自Collection的“子接口”如List和Set。 所有实现Collection接口的类都必须提供两个标准的构造函数: 无参数的构造函数用于创建一个空的Collection 有一个Collection参数的构造函数用于创建一个新的Collection 这个新的Collection与传入的Collection有相同的元素 后一个构造函数允许用户复制一个Collection。 如何遍历Collection中的每一个元素? 不论Collection的实际类型如何,它都支持一个iterator()的方法 该方法返回一个迭代子,使用该迭代子即可逐一访问Collection中每一个元素。 典型的用法如下:Iterator it = collection.iterator(); // 获得一个迭代子 while(it.hasNext()) { Object obj = it.next(); // 得到下一个元素 } 由Collection接口派生的两个接口是List和Set。 List接口 List是有序的Collection 使用此接口能够精确的控制每个元素插入的位置。用户能够使用索引(元素在List中的位置,类似于数组下标)来访问List中的元素 List允许有相同的元素 除了具有Collection接口必备的iterator()方法外,List还提供一个listIterator()方法,返回一个ListIterator接口 允许增加、删除、前向遍历、后向遍历 实现List接口的常用类有 LinkedList ArrayList Vector Stack Set接口 Set是一种不包含重复的元素的Collection,即任意的两个元素e1和e2都有e1.equals(e2)=false,Set最多有一个null元素。 很明显,Set的构造函数有一个约束条件,传入的Collection参数不能包含重复的元素。 必须小心操作可变对象(Mutable Object)。如果一个Set中的可变元素改变了自身状态导致 放入Set集合中的对象必须重写equals()方法。 重写hashCode()方法,会提高性能 Map接口 Map没有继承Collection接口,Map提供key到value的映射。 一个Map中不能包含相同的key,每个key只能映射一个value。 Map接口提供3种集合的视图, Map的内容可以被当作一组key集合 一组value集合 或者一组key-value映射。 放入Map中的自定义类的对象,需要重写equals()和hashCode()方法。 实现List接口的类 ArrayList ArrayList实现了可变大小的数组。 它允许所有元素,包括null ArrayList没有同步 常用方法 size,isEmpty,get,set方法运行时间为常数。 add方法开销为分摊的常数,添加n个元素需要O(n)的时间。其他的方法运行时间为线性。 如果希望随机访问有序集合中的任何一个元素,或者总是把元素追加在末尾,优先考虑使用 每个ArrayList实例都有一个容量(Capacity),即用于存储元素的数组的大小。 这个容量可随着不断添加新元素而自动增加,但是增长算法并没有定义 当需要插入大量元素时,在插入前可以调用ensureCapacity方法来增加ArrayList的容量以提高插入效率。 LinkedList类 LinkedList实现了List接口,允许null元素。此外LinkedList提供额外的get,remove, addFirst() addLast() removeFirst() removeLast() LinkedList可被用作堆栈(stack),队列(queue)或双向队列(deque) 注意LinkedList没有同步方法 多线程的解决方法是在创建List时构造一个同步的List: List list = Collections.synchronizedList(new LinkedList(...)); 经常把元素插入到列表的中间,或者是顺序访问,优先考虑使用 Vector类 Vector非常类似ArrayList,但是V
您可能关注的文档
最近下载
- 图形推理专项练习题.FIT).pdf VIP
- 《钢轨超声波探伤系统的设计》【毕业设计论文】.doc VIP
- 2022年广东高考生物试卷真题及答案详解(精校版).pdf VIP
- Panasonic 松下 录像机 DMR-EH59 DMR-EH49 Operating Instructions 操作手册说明书 (英语).pdf
- 迪罗—特马法纤维开松混合设备机械原理.pdf VIP
- 高考英语单词3500乱序版.pdf VIP
- 2024年新课标高考福建高考真题生物试卷(原卷版).docx VIP
- 2025年内蒙古自治区包头市中考语文真题(含解析答案) .pdf VIP
- 分析三菱电机维修手册mxz68ava pac aksp1501.pdf VIP
- 从理论到实践:坦丹萨学派类型学理论的设计实践探索.docx VIP
原创力文档

文档评论(0)