JAVA开发常用类(三)
3. 集合与遍历
Java中的集合管理都是通过接口实现的,主要如下图:
说明如下:
接口名称 |
说明 |
List |
元素有顺序,也允许重复,关注元素的索引列表 |
Set |
元素无顺序,但不允许重复,关注元素的唯一性 |
Queue |
元素形成队列,关注元素被处理的顺序 |
Map |
关注元素在集合中的映射和键值的唯一性 |
Iterator |
迭代器接口,从前向后输出的单向输出,用于遍历,操作过程中最好不要增加或删除数据 |
Comparator |
比较器接口,某些集合需要对顺序进行排序时,可以将 Comparator 传递给 sort 方法(如 Collections.sort),从而允许在排序顺序上实现精确控制。 |
3.1. Collection及其子类的方法
方法名称 |
功能说明 |
List |
Set |
Queue |
add |
将指定对象添加到集合 |
√ |
√ |
√ |
remove |
从集合中移除指定对象 |
√ |
√ |
√ |
contains |
判断集合中是否存在指定的对象 |
√ |
√ |
√ |
size |
返回集合中对象个数 |
√ |
√ |
√ |
clear |
清除集合中所有对象 |
√ |
√ |
√ |
iterator |
返回集合所有对象的迭代接口 |
√ |
√ |
√ |
toArray |
返回集合所有对象的数组 |
√ |
√ |
√ |
toArray(T[]) |
返回集合中指定类型的对象数组 |
√ |
√ |
√ |
get |
获得指定位置的元素 |
√ |
||
set |
替换指定位置的元素 |
√ |
||
indexOf |
获得指定对象的位置 |
√ |
||
comparator |
返回与排序有关的比较强接口 |
√ |
||
firs/last |
返回第一个/最后一个元素 |
√ |
||
element |
获取但不移除队列头 |
√ |
||
peek |
获取但不移除队列头 |
√ |
||
poll |
获取并移除队列头 |
√ |
Collection接口的实现类包括:
类名称 |
说明 |
ArrayList |
List 接口的大小可变数组的实现。实现了所有可选列表操作,并允许包括 null 在内的所有元素。除了实现 List 接口外,此类还提供一些方法来操作内部用来存储列表的数组的大小。(此类大致上等同于 Vector 类,除了此类是不同步的。) |
LinkedList |
List 接口的链接列表实现。实现所有可选的列表操作,并且允许所有元素(包括 null)。除了实现 List 接口外,LinkedList 类还为在列表的开头及结尾 get、remove 和 insert 元素提供了统一的命名方法。这些操作允许将链接列表用作堆栈、队列或双端队列 (deque)。 |
EnumSet |
与枚举类型一起使用的专用 Set 实现。枚举 set 中所有键都必须来自单个枚举类型,该枚举类型在创建 set 时显式或隐式地指定。枚举 set 在内部表示为位向量。此表示形式非常紧凑且高效。此类的空间和时间性能应该很好,足以用作传统上基于 int 的“位标志”的替换形式,具有高品质、类型安全的优势。如果指定的 collection 也是一个枚举 set,则批量操作(如 containsAll 和 retainAll)也应运行得非常快。 |
HashSet |
此类实现 Set 接口,由哈希表(实际上是一个 HashMap 实例)支持。它不保证集合的迭代顺序;特别是它不保证该顺序恒久不变。此类允许使用 null 元素。 |
Vector |
|
Stack |
|