类集框架
类集框架简介
从JDK1.2开始Java引入类集开发框架,所谓的类集指的就是一套动态数组的实现方案,在实际开发中没有任何一项开发可以离开数组,但是传统数组实现起来非常繁琐,而且长度是其致命伤,所以传统数组是不可能大范围使用的,但是我们又无法离开数组,所以最初只能依靠一些数据结构实现动态数组处理,其中最重要的两个结构:链表、树。
但是面对这些数据不得不面对如下一些困难:
- 数据结构的代码实现困难,对于一般开发者是无法使用的;
- 对于链表或二叉树,进行更新处理的时候维护是非常麻烦的;
- 对于链表或二叉树还需要尽可能保证其操作性能;
由于以上原因,从JDK1.2开始Java引入了类集,主要就是对常见的数据结构进行完整的实现包装,并且提供一系列的接口与实现子类来帮助用户减少数据结构所带来的开发困难。
但是最初类集的实现由于Java本身的技术所限,所以对于数据的控制并不严格,全部采用Object类型进行数据接收。而在JDK1.5之后,由于泛型技术的推广,所以类集本身也得到了良好的改进,可以直接利用泛型来保存相同类型的数据,并且随着数据量的不断增加,从JDK1.8开始类集中的实现算法也得到了良好的性能提升。
在整个类集框架中提供如下核心接口:“Collection”、“List”、“Set”、“Map”、“Iterator”、“Enumeration”、“Queue”、“ListIterator”。
Collection接口简介
java.util.Collection是单值集合操作最大父接口,在该接口中定义所有的单值数据的处理操作,这个接口中定义如下核心操作方法:
方法名称 | 类型 | 描述 |
---|---|---|
public boolean add(E e) | 普通 | 向集合保存单个数据 |
public boolean addAll(Collection<? extends E) c | 普通 | 向集合追加一组数据 |
public void clear() c | 普通 | 清空集合,让根节点为空,同时执行GC处理 |
public boolean contains(Object o) | 普通 | 查询数据存在,需要equal方法支持 |
public boolean remove(Object o) | 普通 | 数据删除,需要equal方法支持 |
public boolean remove(Object o) | 普通 | 数据删除,需要equal方法支持 |
public int size() | 普通 | 获取数据长度 |
public Object[] toArray() | 普通 | 将集合变为对象数组返回 |
public Iterator<E> iterator() | 普通 | 将集合变为Iterator接口返回 |
在进行集合操作处理的时候有两个方法最为常用:【增加】add(),【输出】iterator(),在JDK1.5开始以前Collection只是一个独立的接口,但是JDK1.5之后提供有了Iterator父接口,并且在JDK1.8之后针对Iterator接口也得到了一些扩充。另外,在JDK1.2-JDK1.4时代中如果要进行集合的使用往往会直接操作Collection接口,但是从JDK1.5开始更多地情况下选择的都是Collection的两个子接口:允许重复的List子接口,以及不允许重复的Set子接口。
许重复的List子接口,以及不允许重复的Set子接口==。