Java 集合(一)| 集合和Collection接口简介
文章目录
一、集合框架简介
起源
从JDK1.2开始引入了集合框架,所谓集合,指的是一套动态数组的实现,我们的开发之中离不开数组,而传统的数组实现起来很繁琐,而且其长度不可变是致命缺陷,所以我们最初只能依靠一些数据结构来实现动态的数组处理,而最重要的两个数据结构就是链表和树,但是面对这些数据结构的实现必须面对如下问题:
- 数据结构的代码实现是很困难的,一般的开发者是无法进行完成的
- 对于链表和二叉树进行数据更新和维护是很麻烦的
- 对于链表和二叉树还需要尽可能保证其操作性能
正是因为这些原因,JDK1.2引入了类集,主要就是对常见的数据结构进行完整的实现封装,并且提供了一系列的接口和实现子类来帮助用户减少数据结构所带来的开发困难
改进
但是最初的类集框架由于Java本身技术所限,所以对于数据的控制并不严格,全部采用了Object类型来进行数据接收,会存在向上或向下转型的问题,而在JDK1.5之后,由于泛型技术的推广,所以类集本身也得到了改进,可以利用泛型l来保存相同类型的数据,并且随着数据量的不断增加,从JDK1.8开类集中的实现算法也得到了良好的性能提升,可以满足开发需要
核心接口
Collection、List、Set、Map、Iterator、Enumeration、Queue、ListIterator
二、Collection接口简介
简介
java.util.Collection是单值集合操作的最大父接口,在该接口中定义了所有单值数据的处理操作
JDK不提供此接口的任何直接实现:它提供了更具体的子接口的实现,如Set和List
核心方法
方法名称 | 说明 |
---|---|
int size() | 集合中元素的数量 |
boolean isEmpty() | 集合是否为空 |
boolean contains(Object o) | 集合中是否包含指定的元素,需要equals方法支持 |
Object[] toArray() | 将集合中元素转换为数组 |
boolean remove(Object o) | 删除集合中指定元素,需要equals方法支持 |
boolean add(E e) | 向集合中添加指定元素 |
boolean addAll(Collection<? extends E> c) | 向集合中添加指定的另一个集合中所有元素 |
void clear(); | 清空集合元素 |
Iterator< E> iterator(); | 返回包含集合中所有元素的迭代器 |
在进行集合操作中有两个方法最为常用:add()和iterator(),在JDK1.5以前,Collection只是一个独立的接口,在JDK1.5为Collection接口提供了Iterable父接口,并且在JDK1.8之后对于Iterable接口也做了些扩充,另外,在JDK1.2~JDK1.4的时代里如果要进行集合的使用,往往会直接操作Collection接口,但是从JDK1.5后都是操作Collection的两个子接口:List和Set
图解