JDK中提供了一系列特殊的类,这些类中可以存储任意类型的对象,并且长度可变,统称为集合。
这些类都位于java.util包中,在使用时一定要注意导包的问题,否则会出现异常。
集合按照其存储结构可以分为两大类,即单列集合Collection和双列集合Map,这两种集合的特点具体如下:
-
Collection:单列集合的根接口,用于存储一系列符合规则的某种元素,它有两个重要的的子接口,分别是List和Set。其中,List的特点是元素有序、元素可重复。Set的特点是元素无序并且不可重复。List接口的主要实现类有ArrayList和LinkedList,Set接口的主要实现类有HashSet和TreeSet。
- Map:双列集合的根接口,用存储具有键(Key)值、(Value)映射关系的元素。每个元素都包含一对键值,在使用Map集合时可以通过指定的Key找到对应的Value。Map的主要实现类有HashMap、TreeMap和HashTable。
Collection:
Collection是所有单列集合的父接口,因此在Collection中定义了单列集合(List和Set)通用的一些方法,这些方法可用于操作所有的单列集合。
方法声明 | 功能描述 |
---|---|
boolean add(Object o) | 向集合中添加一个元素 |
boolean addAll(Collection c) | 将指定的Collection中所有的元素添加到该集合 |
void clear() | 删除该集合中所有元素 |
boolean remove(Object o) | 删除该集合中指定元素 |
boolean removeAll(Collection c) | 删除指定集合中的所有元素 |
boolean isEmpty() | 判断该集合是否为空 |
boolean contains(Object o) | 判断该集合中是否包含某个元素 |
boolean containsAll(Collection c) | 判断该集合中是否包含指定集合中的所有元素 |
Iterator iterator() | 返回该集合元素上进行迭代的迭代器,用于遍历该集合所有元素 |
int size() | 获取该集合的元素个数 |
Object[] toArray() | 返回一个包含该集合所有元素的数组 |
... | ... |
List:
List接口继承自Collection接口,是单列集合的一个重要分支,习惯性地会将实现List接口的对象称为List集合。List集合中允许出现重复元素,已线性存储的方式存储,可以通过索引号来访问元素。
List作为Collection的子接口,不仅继承了Collection接口的全部方法,还增加了一些通过索引号来操作集合元素的方法。
方法声明 |
功能描述 |
void add(int index,Object element) | 将元素element插入在List集合的index处 |
boolean addAll(int index,Collection c) | 将集合c所包含的全部元素插入到在List集合的index处 |
Object get(int index) | 返回集合索引号index处的元素 |
Object remove(int index) | 删除集合索引号index处的元素 |
Object set(int index,Object element) | 将索引index处的元素替换成element对象,并将被替换的元素返回 |
int indexOf(Object o) | 返回对象o在List集合出现的位置索引 |
int lastIndexOf(Object o) | 返回对象o在List集合最后一次出现的位置索引 |
List subList(int fromIndex,int toIndex) | 返回从索引fromIndex到toIndex处所有元素集合成的子集合,前开后闭 |
List接口下的所有集合容器都拥有索引(index),因此List集合不仅可以通过迭代器去遍历,还可以通过索引号来遍历,List集合还提供了一种特有的迭代器ListIterator。
Iterator(迭代器)只能从前往后遍历集合,一旦遍历结束,迭代器的隐式光标就会位于集合的最后一个元素的后面,此迭代器就无法再对集合进行遍历。而ListIterator不仅可以对集合进行从前往后的遍历,还可以从后往前遍历集合,同时还提供了对集合的增删改查方法。
未完。。。待补充。。。如若以往请提醒一下。