集合接口
集合框架定义的接口:
序号 | 接口描述 |
---|---|
1 | Collection 接口 Collection 是最基本的集合接口,一个 Collection 代表一组 Object,即 Collection 的元素, Java不提供直接继承自Collection的类,只提供继承于的子接口(如List和set)。 Collection 接口存储一组不唯一,无序的对象。 |
2 | List 接口 List接口是一个有序的 Collection,使用此接口能够精确的控制每个元素插入的位置,能够通过索引(元素在List中位置,类似于数组的下标)来访问List中的元素,第一个元素的索引为 0,而且允许有相同的元素。 List 接口存储一组不唯一,有序(插入顺序)的对象。 |
3 | Set 接口 Set 具有与 Collection 完全一样的接口,只是行为上不同,Set 不保存重复的元素。 Set 接口存储一组唯一,无序的对象。 |
4 | SortedSet 接口 继承于Set保存有序的集合。 |
5 | Map 接口 Map 接口存储一组键值对象,提供key(键)到value(值)的映射。 |
6 | Map.Entry 接口 描述在一个Map中的一个元素(键/值对)。是一个 Map 的内部接口。 |
7 | SortedMap 接口 继承于 Map,使 Key 保持在升序排列。 |
8 | Enumeration 接口 这是一个传统的接口和定义的方法,通过它可以枚举(一次获得一个)对象集合中的元素。这个传统接口已被迭代器取代。 |
Collection 接口
集合接口是集合框架构建的基础。它声明了所有集合都会具有的核心方法。
序号 | 方法和描述 |
---|---|
1 | boolean add(Object obj) 将obj添加到调用的集合中。如果obj被添加到集合中,则返回true。如果obj已经是集合的成员,或者集合不允许重复,则返回false。 |
2 | boolean addAll(Collection c) 将c的所有元素添加到调用的集合中。如果操作成功(即元素被添加),则返回true。否则,返回false。 |
3 | void clear( ) 从调用的集合中删除所有元素。 |
4 | boolean contains(Object obj) 如果obj是调用的集合的元素,则返回true。否则,返回false。 |
5 | boolean containsAll(Collection c) 如果调用的集合包含所有 c 的元素,则返回true。否则,返回false。 |
6 | boolean equals(Object obj) 如果调用的集合和obj相等,则返回true。否则,返回false。 |
7 | int hashCode( ) 返回调用集合的哈希码。 |
8 | boolean isEmpty( ) 如果调用的集合为空,则返回true。否则,返回false。 |
9 | Iterator iterator( ) 返回调用集合的迭代器。 |
10 | boolean remove(Object obj) 从调用的集合中删除一个obj的实例。如果元素被删除,返回true。否则,返回false。 |
11 | boolean removeAll(Collection c) 从调用的集合中删除c的所有元素。如果集合发生了变化(即有元素被删除),返回true。否则,返回false。 |
12 | boolean retainAll(Collection c) 从调用的集合中删除除了c中的元素以外的所有元素。如果集合发生了变化(即有元素被删除),返回true。否则,返回false。 |
13 | int size( ) 返回调用集合中持有的元素数。 |
14 | Object[ ] toArray( ) 返回包含调用集合中所有元素的数组。该数组的元素是集合元素的副本。 |
15 | Object[ ] toArray(Object array[ ]) 返回一个只包含与数组类型匹配的集合元素的数组。 |
List 接口
列表接口扩展了 Collection 并声明了一个存储元素序列的集合的行为。
- 可以通过在列表中的位置使用零为基的索引来插入或访问元素。
- 列表可以包含重复的元素。
- 除了由 Collection 定义的方法外,列表定义了一些自己的方法,这些方法在下表中总结。
- 如果集合不能被修改,一些列表方法将抛出UnsupportedOperationException异常,并且当一个对象与另一个对象不兼容时,会生成ClassCastException。
序号 | 方法和描述 |
---|---|
1 | void add(int index, Object obj) 将obj插入到调用列表中传入的索引处。任何在插入点或超出插入点的预先存在的元素都会向上移动。因此,没有元素被覆盖。 |
2 | boolean addAll(int index, Collection c) 将c的所有元素插入到调用列表中传递给索引的索引处。任何在插入点或超出插入点的预先存在的元素都会向上移动。因此,没有元素被覆盖。如果调用的列表发生变化,返回true,否则返回false。 |
3 | Object get(int index) 返回存储在调用集合中指定索引处的对象。 |
4 | int indexOf(Object obj) 返回调用列表中第一个obj实例的索引。如果obj不是列表中的元素,则返回.1。 |
5 | int lastIndexOf(Object obj) 返回调用列表中最后一个obj实例的索引。如果obj不是列表中的元素,则返回.1。 |
6 | ListIterator listIterator( ) 返回指向调用列表起始处的迭代器。 |
7 | ListIterator listIterator(int index) 返回一个指向调用列表的迭代器,从指定的下标开始。 |
8 | Object remove(int index) 从调用的列表中删除索引位置的元素,并返回被删除的元素。结果列表被合并。也就是说,后续元素的索引减1。 |
9 | Object set(int index, Object obj) 将obj赋值到调用列表中由index指定的位置。 |
10 | List subList(int start, int end) 返回一个从头到尾包含元素的列表。1在调用列表中。返回列表中的元素也会被调用的对象引用。 |
Set 接口
Set是一种不能包含重复元素的集合。它模拟了数学集合的抽象概念。Set接口只包含继承自Collection的方法,并且增加了禁止有重复元素的限制。
Set还对equals和hashCode操作的行为增加了更强的约束,使得即使它们的类型实现不同,Set实例也可以有意义地进行比较。
序号 | 方法和描述 |
---|---|
1 | add( ) 向集合中添加一个对象。 |
2 | clear( ) 从集合中移除所有对象。 |
3 | contains( ) 如果指定对象是集合中的元素,返回true。 |
4 | isEmpty( ) 如果集合没有元素,返回true。 |
5 | iterator( ) 返回集合的迭代器对象,该对象可用于检索元素。 |
6 | remove( ) 从集合中移除指定对象。 |
7 | size( ) 返回集合中的元素数量。 |
SortedSet 接口
SortedSet接口扩展了Set接口,并声明了按升序排序的集合的行为。SortedSet接口除了Set接口定义的方法之外,还声明了下表中总结的方法。
在调用集合中不包含任何项时,几个方法会抛出NoSuchElementException。当一个对象与集合中的元素不兼容时,会抛出ClassCastException异常。
如果尝试使用一个空对象,并且集合中不允许使用null,那么将抛出NullPointerException异常。
序号 | 方法和描述 |
---|---|
1 | Comparator comparator() 返回调用的有序集的比较器。如果对该集使用自然排序,则返回null。 |
2 | Object first() 返回调用的有序集中的第一个元素。 |
3 | SortedSet headSet(Object end) 返回一个包含调用的有序集中小于end的元素的SortedSet。返回的有序集中的元素也被调用的有序集引用。 |
4 | Object last() 返回调用的有序集中的最后一个元素。 |
5 | SortedSet subSet(Object start, Object end) 返回一个包含在start和end之间的元素的SortedSet。返回集合中的元素也被调用的对象引用。 |
6 | SortedSet tailSet(Object start) 返回一个包含大于或等于start的元素的SortedSet,这些元素包含在有序集中。返回集合中的元素也被调用的对象引用。 |
Map 接口
Map接口将唯一的键映射到值。键是用来在以后检索值的对象。
- 给定一个键和一个值,你可以将该值存储在一个Map对象中。在值被存储后,可以通过使用它的键来检索它。
- 几个方法在调用 Map 中不存在项目时会引发NoSuchElementException。
- 当对象与地图中的元素不兼容时,会引发ClassCastException。
- 如果尝试使用null对象并且在地图中不允许null,将引发NullPointerException。
- 当试图更改一个不可修改的映射时,将引发UnsupportedOperationException。
序号 | 方法与描述 |
---|---|
1 | void clear( ) 从调用的映射中删除所有的键/值对。 |
2 | boolean containsKey(Object k) 如果调用的映射包含 k 作为键,则返回true。否则,返回false。 |
3 | boolean containsValue(Object v) 如果映射中包含 v 作为值,则返回true。否则,返回false。 |
4 | Set entrySet( ) 返回一个包含映射条目的Set。该Set包含类型为Map.Entry的对象。此方法提供了对调用的映射的Set视图。 |
5 | boolean equals(Object obj) 如果obj是一个Map且包含相同的条目,则返回true。否则,返回false。 |
6 | Object get(Object k) 返回与键 k 关联的值。 |
7 | int hashCode( ) 返回调用map的哈希码。 |
8 | boolean isEmpty( ) 如果调用的map为空,则返回true。否则,返回false。 |
9 | Set keySet( ) 返回一个包含调用map中键的集合。该方法提供了调用map中键的视图。 |
10 | Object put(Object k, Object v) 向调用的映射中放入一个条目,覆盖与该键关联的任何先前值。键和值分别为k和v。如果键以前不存在,则返回null。否则,返回与该键关联的先前值。 |
11 | void putAll(Map m) 将 m 中的所有条目放入此映射中。 |
12 | Object remove(Object k) 删除键等于 k 的条目。 |
13 | int size( ) 返回映射中键/值对的数量。 |
14 | Collection values( ) 返回包含映射中的值的集合。该方法提供了映射中值的集合视图。 |
Map.Entry 接口
The Map.Entry接口使我们能够使用Map条目进行操作。有点类似 Pair。
由Map接口声明的 entrySet() 方法返回一个包含地图条目的Set。这些集合元素都是Map.Entry对象。
序号 | 方法与描述 |
---|---|
1 | boolean equals(Object obj) 如果obj是一个与调用对象的键和值相等的Map.Entry,则返回true。 |
2 | Object getKey( ) 返回此映射项的键。 |
3 | Object getValue( ) 返回此映射项的值。 |
4 | int hashCode( ) 返回此映射项的哈希码。 |
5 | Object setValue(Object v) 将此映射项的值设置为 v 。如果 v 不是映射的正确类型,则抛出ClassCastException。如果映射不允许空键,则如果 v 是null,则抛出NullPointerException。如果映射无法更改,则抛出UnsupportedOperationException。 |
SortedMap 接口
排序映射接口扩展了映射接口。它确保条目按照升序的键顺序进行维护。
当调用映射中没有条目时,几个方法会抛出 NoSuchElementException 异常。当一个对象与映射中的元素不兼容时,会抛出 ClassCastException 异常。如果在映射中出于不允许使用 null 的原因而试图使用一个 null 对象,则会抛出 NullPointerException 异常。
序号 | 方法与说明 |
---|---|
1 | Comparator comparator( ) 返回调用排序映射的比较器。如果使用自然顺序进行调用映射,则返回null。 |
2 | Object firstKey( ) 返回调用映射中的第一个键。 |
3 | SortedMap headMap(Object end) 返回那些键小于end的映射条目的排序映射。 |
4 | Object lastKey( ) 返回调用映射中的最后一个键。 |
5 | SortedMap subMap(Object start, Object end) 返回包含那些键大于或等于start且小于end的条目的映射。 |
6 | SortedMap tailMap(Object start) 返回包含那些键大于或等于start的条目的映射。 |