在java中,集合是由类和接口实现的聚集体,这些类和接口构成了集合框架;或者是由类型实现的聚集体,这些类型扩展了定义于集合框架中的类。集合框架由下列部分构成:
1)、定义集合的行为的接口(例如,他们定义添加和删除元素的方法)
2)、具体类:他们提供了接口的多种用途的实现,这些接口可以直接使用
3)、抽象类:他们实现集合框架的接口,可以扩展这些集合框架以创建特殊化的数据结构的集合
集合框架的目的如下:
1、通过提供大部分通用数据结构,减少程序员的编程工作
2、提供一套类型,这些类型易于使用、扩展和理解
3、通过定义一套用于实现的标准的集合接口,增加灵活性。因此可以很容易的把一类数据结构转化成另一类数据结构,或者修改集合的实现,而不修改其他类使用它的方式。
4、通过测试软件元件的重用,改进程序质量
集合框架中的3个关键接口
Collection接口:框架的根接口是Collection。Collection和Map接口定义框架中所有类通用的行为。Collection接口中的方法添加和删除元素,并在Object类型的元素上进行操作,所以Collection可以保存任何类型的对象。集合框架不包括直接实现Collection接口的类。详情可查看Collection接口定义的API。
Set接口:Set接口扩展Collection接口以定义不允许复制元素的集合的标准行为。Set接口并没有介绍人和超越那些定义于Collection接口中的方法的额外方法。然而,这个接口添加了阻止复制元素的限制。例如方法boolean add(Object element)中如果元素已经是集合的一部分,则返回false。
List接口:List接口扩展Collection接口定义有序集合的标准行为,这种接口通常称为序列。通常,List实现复制元素。实现这个接口的集合中的元素在集合中具有一个位置,这个位置由整型的索引值指定。正如数组那样,这些索引值以0开始,并具有等于列表的大小减1的最大值。注意List接口执行的行为,这些行为是:所有实现的类都可以获得位于指定的索引上的元素,可以设置位于指定的索引上的元素,并可以在指定的索引上插入元素。此外,列表可以返回元素的首次出现以及元素的末次出现。
使用迭代器遍历集合
对于所有的继承集合类型,指针实现Iterator接口。你并不直接创建集合的迭代器。相反,可以调用集合的iterator方法获得一个迭代器。
所有的指针提供方法,这些方法指示是否还有更多的元素在集合中,并返回下一个元素。一些Iterator对象提供remove方法,以遍历集合时,从集合中删除元素。优点是客户不必再集合上完成单独的操作以找到并删除元素,因为客户已经有了对指针返回的元素的引用。
因为所有的继承集合类都有返回迭代器的方法所以可以使用与以下代码类似的代码导航所有非继承类型的所有集合。在这里假设定义的类型ActivityRecord的对象已经添加到了称为activityLog的集合对象中:
Iterator it = activityLog.iterator();
while(it.hasNext()) {
ActivityRecord activity = (ActivityRecord) it.next();
}
集合的方法List.iterator创建指针。指针的实际类型是不重要的。重要的是它实现了Iterator接口。
实现List接口的集合也支持实现ListIterator接口的Iterator对象。ListIterator接口扩展了Iterator,允许通过列表向前遍历和向后遍历,并提供额外的方法,以便正在遍历列表时,修改这个列表。ListIterator接口的这个描述只包涵这些额外的方法。
分享到:
相关推荐
集合框架学习笔记 https://mp.csdn.net/mdeditor/88970781#
集合框架及泛型的介绍和基础理解,方便大家了解集合框架及泛型。
Java集合框架使用总结 前言: 本文是对Java集合框架做了一个概括性的解说,目的是对Java集合框架体系有个总体认识,如果你想学习具体的接口和类的使用方法,请参看Java API文档。 一、概述 数据结构对程序设计...
java集合框架图java集合框架图java集合框架图java集合框架图java集合框架图
Java集合框架详解Java集合框架详解Java集合框架详解
BDQN ACCP 7.0 Java《集合框架及泛型》学习资料.part1
xmind格式的Java集合框架学习导图,包括Collection接口/Map接口以及具体实现类。 同样包含大厂面试题,也在导图中有所体现。 能学到什么: 更加成体系的知识框架,更加全面的、系统的知识。 思维导图: 思维导图具有...
集合是将多个元素组成一个单元的...Java集合框架,为我们提供了一套性能优良、使用方便的接口和类,我们不必再重新发明轮子,只需学会如何使用它们,就可以处理实际应用中出现的问题了Java集合框架位于java.util包中
Java集合框架总结Java集合框架总结Java集合框架总结Java集合框架总结Java集合框架总结Java集合框架总结
内含大量java集合框架方面常被面试官问到的经典面试题。
关于集合框架的系统结构图,感觉很详细了,忘了在哪个论坛上找的了,把图片考下来了,
Java基础知识汇总之集合框架List、Map、Set接口及其子类综合对比
学士后Java集合框架和泛型课后习题答案 希望能够帮助大家更好的学习JAVA,这些知识还是比较基础的,并没有多大难度 一起共同进步
集合框架练习.doc
java集合- 集合框架源码分析
集合框架及泛型资料
学生通过学习方法描述和应用,可以逐步理解并有效地使用数据结构,还可以了解这些数据结构的多种实现,包括在java集合框架中提供的一些实现。. 本书内容丰富,且在每章章尾提供编程项目,以帮助学生提高实践能力。...
Java集合框架问题,整理整理整理整理整理整理整理整理整理
List set ArraryList Map java集合框架笔记 基于Array的List,其实就是封装了Array所不具备的一些功能方便我们使用
本文档为本人学习 java 集合框架期间的学习总结笔记,希望对新学习的朋友有所帮助和参考价值。本人java 开发时间不是太长,可能存在不完善或不对之处,欢迎指正!