集合框架中的接口

Java集合框架中为不同类型的集合定义了大量接口,如图:
集合框架的接口
集合有两个基本的接口:Collection 和 Map

Iterable

实现这个接口允许对象成为 “foreach” 语句的目标

Collection

Collection 表示一组对象,这些对象也称为 collection 的元素

List

1.一个有序集合(ordered collection)
2.元素会增加到容器中特点的位置
3.采用两种方式访问元素
- 使用迭代器访问:必须顺序的访问元素
- 使用一个整数索引访问:可以按任意顺序访问元素
ListIterator接口是Iterator的一个子接口,定义了一个方法用于在迭代器位置前面增加一个元素

Set

Set接口等同于Collection接口,不过其方法的行为有更严谨的定义:

  • set的add方法不允许增加重复的元素
  • 要适当地定义集(set)equals方法:只要两个集包含同样的元素就认为是相等的,而不要求这些元素有同样的顺序
  • hashCode方法的定义要保证包含同样的元素的两个集会得到相同的散列码
SortedSet

进一步提供关于元素的总体排序 的 Set
这些元素使用其自然顺序进行排序,或者根据通常在创建有序 set 时提供的 Comparator 进行排序。
该 set 的迭代器将按元素升序遍历 set。提供了一些附加的操作来利用这种排序。(此接口是 SortedMap 的 set 对应接口)。

NavigableSet

扩展的 SortedSet,具有了为给定搜索目标报告最接近匹配项的导航方法

Queue

在处理元素前用于保存元素的 collection
除了基本的 Collection 操作外,队列还提供其他的插入、提取和检查操作。
每个方法都存在两种形式:一种抛出异常(操作失败时),另一种返回一个特殊值(null 或 false,具体取决于操作)。插入操作的后一种形式是用于专门为有容量限制的 Queue 实现设计的;在大多数实现中,插入操作不会失败。
在这里插入图片描述

Deque

一个线性 collection,支持在两端插入和移除元素。
名称 deque 是“double ended queue(双端队列)”的缩写,通常读为“deck”。
大多数 Deque 实现对于它们能够包含的元素数没有固定限制,但此接口既支持有容量限制的双端队列,也支持没有固定大小限制的双端队列

Map

将键映射到值的对象。一个映射不能包含重复的键;每个键最多只能映射到一个值。
此接口取代 Dictionary 类,后者完全是一个抽象类,而不是一个接口。
Map 接口提供三种collection 视图,允许以键集、值集或键-值映射关系集的形式查看某个映射的内容。映射顺序 定义为迭代器在映射的 collection 视图上返回其元素的顺序。某些映射实现可明确保证其顺序,如 TreeMap 类;另一些映射实现则不保证顺序,如 HashMap 类

SortedMap

进一步提供关于键的总体排序 的 Map。
该映射是根据其键的自然顺序进行排序的,或者根据通常在创建有序映射时提供的 Comparator 进行排序。
对有序映射的 collection 视图(由 entrySet、keySet 和 values 方法返回)进行迭代时,此顺序就会反映出来。要采用此排序方式,还需要提供一些其他操作(此接口是 SortedSet 的对应映射)。

NavigableMap

扩展的 SortedMap,具有了针对给定搜索目标返回最接近匹配项的导航方法

Iterator

对 collection 进行迭代的迭代器。迭代器取代了 Java Collections Framework 中的 Enumeration。
迭代器与枚举有两点不同:

  • 迭代器允许调用者利用定义良好的语义在迭代期间从迭代器所指向的 collection 移除元素
  • 方法名称得到了改进

此接口是 Java Collections Framework 的成员

ListIterator

系列表迭代器,允许程序员按任一方向遍历列表、迭代期间修改列表,并获得迭代器在列表中的当前位置。
ListIterator 没有当前元素;它的光标位置 始终位于调用previous() 所返回的元素和调用 next() 所返回的元素之间。
注意,remove() 和 set(Object) 方法不是 根据光标位置定义的;它们是根据对调用 next() 或 previous() 所返回的最后一个元素的操作定义的。
此接口是 Java Collections Framework 的成员。

RandomAccess

List 实现所使用的标记接口,用来表明其支持快速(通常是固定时间)随机访问
此接口的主要目的是允许一般的算法更改其行为,从而在将其应用到随机或连续访问列表时能提供良好的性能

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值