一、为什么需要集合框架
数组的长度是固定的,但是如果写程序时并不知道程序运行时会需要多少对象、或者需要更复杂的方式存储对象,---那么,可以使用JAVA集合框架,来解决这类问题
二、集合框架主要接口
No |
接口 |
描述 |
1 |
Collection |
是存放一组单值的最大接口,所谓的单值是指集合中的每个元素都是一个对象。一般很少会直接使用此接口直接操作。 |
2 |
List |
是Collection接口的子接口,也是最常用的接口,此接口对Collection接口进行了大量的扩充,里面的内容是允许重复的。 |
3 |
Set |
是Collection接口的子类,没有对Collection接口进行扩充,里面不允许存放重复内容。 |
4 |
Map |
Map是存放一对值的最大接口,即,接口中的每个元素都是一对,以keyàvalue的形式保存。 |
5 |
Iterator |
集合的输出接口,用于输出集合中的内容,只能进行从前到后的单向输出。 |
6 |
ListIterator |
是Iterator的子接口,可以进行双向输出。 |
7 |
Enumeration |
是最早的输出接口,用于输出指定集合中的内容。 |
8 |
SortedSet |
单值的排序接口,实现此接口的集合类,里面的内容是可以排序的,使用比较器排序。 |
9 |
SortedMap |
存放一对值的排序接口,实现此接口的集合类,里面的内容按照key排序,使用比较器排序。 |
10 |
Queue |
队列接口,此接口的子类可以实现队列操作。 |
11 |
Map.Entry |
Map.Entry的内部接口,每个Map.Entry对象都保存着一对keyàvalue的内容,每个Map接口中都保存多个Map.Entry接口实例。 |
三、接口的继承关系
在一般的开发中,往往很少去直接使用Collection接口进行开发,而基本上都是使用其子接口。子接口主要有:List、Set、Queue、SortedSet。
四、Collection子接口的定义
Collection接口虽然是集合的最大接口,但是如果直接使用Collection接口进行操作的话,则表示的操作意义不明确,所以在JAVA开发中已经不提倡直接使用Collection接口了,主要的子接口如下:
- List接口:可以存放重复的内容。
- Set接口:不能存放重复的内容,所有的重复内容是靠hashCode()和equals()两个方法区分的。
- Queue:队列接口。
- SortedSet接口:可以对集合中的数据进行排序。
五、Collection接口的方法定义
No. |
方法 |
类型 |
描述 |
1 |
public boolean add(E o) |
普通 |
向集合中插入对象 |
2 |
public boolean addAll(Collection<? extends E> c) |
普通 |
将一个集合的内容插入进来 |
3 |
public void clear() |
普通 |
清除此集合中的所有元素 |
4 |
public boolean contains(Object o) |
普通 |
判断某一个对象是否在集合中存在 |
5 |
public boolean containsAll(Collection<?> c) |
普通 |
判断一组对象是否在集合中存在 |
6 |
public boolean equals(Object o) |
普通 |
对象比较 |
7 |
public int hashCode() |
普通 |
哈希码 |
8 |
public boolean isEmpty() |
普通 |
集合是否为空 |
9 |
public Iterator<E> iterator() |
普通 |
为Iterator接口实例化 |
10 |
public boolean remove(Object o) |
普通 |
删除指定对象 |
11 |
public boolean removeAll(Collection<?> c) |
普通 |
删除一组对象 |
12 |
public boolean retainAll(Collection<?> c) |
普通 |
保存指定内容 |
13 |
public int size() |
普通 |
求出集合的大小 |
14 |
public Object[] toArray() |
普通 |
将一个集合变为对象数组 |
15 |
public <T> T[] toArray(T[] a) |
普通 |
指定好返回的对象数组类型 |
六、区别
- Connection:接口存储值不唯一,无序的对象
- List:接口存储值不唯一,有序(插入顺序)的对象
- Set:接口存储值唯一,无序的对象
- Map:接口存储值一组键值对象,提供键(Key)到值(Value)的映射
时间: 2024-10-10 07:09:22