在官方文档中给出的集合框架的定义如下:适用于操纵集合的一个统一架构,核心还是一个容器,但是相比于数组具有不定长不同类的特点。
使用集合框架的好处:
- 减少了编程的工作量:
- 通过有用的数据结构和算法能够让我们只专注于程序的重要部分,比如说ArrayList和linkedlist一种底层是数组一种底层是链表,前者便于我们检索数据,后者便于我们增删数据。
- 提高了程序的速度和质量:
- 每个接口的各种实现是可以互换的,我们可以通过切换集合来进行轻松的调整,一般通过多态来保证,这样我们能够根据业务逻辑的不一样来更改对应的集合部分
- 允许了不想管api之间的互操作性:
- 集合接口是Aip来传递集合的本地语言,我们可以轻松的使用java给我们提供的api
- 三个接口:
- Iterable接口
- 这个接口允许了对象称为foreach语句的目标,同时也是我们set,list的最终父接口,这也是为什么我们的集合可以直接使用foreach的原因
- 只提供了一个方法,让我们返回一组T类型的元素上进行得带的迭代器
- Iterator iterator();
- iterator接口
- 作为任何容器类必须有某种方式可以插入元素并将他们再次取回,毕竟持有事物是容器最基本的工作,对于list,get方法是取出元素的方法之一,但是这样有个缺点,我们使用这个方法必须要是list集合才行,但是如果因为业务我们要对集合进行更换,变为set集合,我们之前写的方法就不行了,难道重新写么?当然不可能,所以迭代器这个接口可以让我们实现这个目的。
- 当然说这个接口必须提一个设计模式———迭代器模式,提供一种方法访问一个容器对象中的各个元素,但是不暴露该对象的内部细节
- 作为java的迭代器只能单向移动,作为父接口只提供了一个方法iterator()方法,这个方法要求容器返回一个iterator,将准备返回序列的第一个元素
- 游标一开始指向上层,在0下标的上一个空处
- next()方法获得序列中下一个元素
- hasNext()检查序列中是否还有元素
- remove()将迭代器中新进返回的元素删除
- Collecion接口
- 收集层次结构的根,一个集合表示一组被称为其元素的对象,这个接口是是所有集合的实现
- 提供了许多对集合操作的方法教给子类去实现,不得不提八个方法
- Iterable接口