Java实用教程第23讲集合

Java实用教程第23讲集合

ID:41233075

大小:577.50 KB

页数:20页

时间:2019-08-20

Java实用教程第23讲集合_第1页
Java实用教程第23讲集合_第2页
Java实用教程第23讲集合_第3页
Java实用教程第23讲集合_第4页
Java实用教程第23讲集合_第5页
资源描述:

《Java实用教程第23讲集合》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第23讲集合数组可以用来保存一组数据,但数组的大小一旦定义就不能改变。使用数据类存储基本数据类型时非常有效,可以定义对象数组来存储一组对象,但有时并不能确定到底要存储多少个对象。为此,Java实用类库提供了一套容器类来解决这个问题。第23讲集合23.1集合框架23.2Collection23.2.1Set(规则集)23.2.3List(线性表)23.3Map23.1集合框架Java容器类的作用是用来“保存对象”,是可变长的对象数组,其可分为两种类型:(1)Collection(称为集合):一个独立元素的序列。(2)Map(称为映

2、射表或图):一组成对的“键/值”对象。图23.1为Java集合框架的继承关系图。23.2CollectionJava集合框架中常用的Collection有三种:Set(规则集)、List(线性表)和Queue(队列)。Set的实例用于存储一组不重复的元素,List的实例用于存储一个由元素构成的有序集合,而Queue的实例用于存储使用先进先出方式处理的对象。23.2.1Set(规则集)Set接口扩展了Collection接口,它并没有引入新的方法或常量,只是规定了Set的实例不能包含重复的元素。实现Set接口的具体类必须确保没有向

3、其添加重复的元素。常用的实现Set接口的类有三个,分别为:HashSet(散列集)、LinkedHashSet(链式散列集)和TreeSet(树形集)。(1)HashSet(散列集)HashSet可以用来存储互不相同的任何元素。(2)LinkedHashSet(链式散列集)LinkedHashSet是HashSet的子类,它使用链表扩展了HashSet类。LinkedHashSet中的元素是有序的,其顺序为插入(3)TreeSet(树形集)SortedSet接口为Set的子接口,它确保了Set中的元素是有序的,这些元素按自然顺序

4、进行排序或者按照创建Set时所指定的Comparator进行排序。方法first、last、headSet和tailSet分别返回规则集中的第一个元素、最后一个元素、小于给定元素和大于等于给定元素的元素顺序。sNavigableSet接口扩展了SortedSet接口,增加了导航方法。方法lower、floor、ceiling和higher分别返回小于、小于等于、大于等于、大于给定元素的元素,如果元素不存在,则返回null。也可以按升序或降序访问和遍历NavigableSet。23.2.2Comparator(比较器接口)向Tre

5、eSet中添加的对象是可以相互比较的,而常用的比较对象的方式有两种:(1)使用Comparable接口。这种方法用于使用实现了Comparable接口的类所创建对象的比较,Comparable接口中定义了compareTo方法,这种方法定义的顺序为自然顺序。Java中API中的许多类都实现了Comparable接口,如:由于String类实现了Comparable接口,所以在TestTreeSet.java中String类的实例可以存储到TreeSet中,并按自然顺序排序。(2)使用Comparator(比较器接口)。有些类没有

6、实现Comparable接口,或者虽然实现了Comparable接口但不想使用compareTo方法进行比较,这时可以为规则集中的元素指定一个比较器,此比较器为实现了Comparator接口的类所创建的对象。规则集中的元素按照比较器中规定的顺序进行排序。Comparator接口中定义了两个方法:①intcompare(To1,To2):对两个参数进行比较,如果o1小于o2,返回一个负数;如果o1大于o2,返回一个正数;如果o1等于o2,返回0。②booleanequals(Objectobj):如果obj也是一个比较器,则比较o

7、bj与此比较器是否相等,如果相等返回true。23.2.3List(线性表)规则集中不能存储重复的元素。可以使用线性表来存储重复元素,另外线性表还可以为元素指定存储位置,使用下标进行访问。常用的实现List接口的类有两个ArrayList和LinkedList,它们都按照被插入的顺序保存元素,两者的不同在于执行某些操作时的性能。(1)ArrayList(数组线性表)ArrayList采用数组来存储元素,但数组是动态创建的,当ArrayList中的元素个数超过出了数组的容量时,就创建一个更大的新数组,把当前数组中的元素全部复制到这

8、个新数组中,所以,ArrayList在随机访问元素时效率很高。(2)LinkedList(链式线性表)LinkedList使用链表来存储元素,所以,LinkedList在添加删除元素时效率很高。23.2.4Queue(队列)队列是一种先进先出的数据结构,在队头删

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

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

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