Map、Collection、List接口的总结

[size=large]Map接口:[/size] |
[color=blue] + -- WeakHashMap: [/color]以弱键 实现的基于哈希表的 Map。在 WeakHashMap 中,当某个键不再正常使用时,将自动移除其条
| 目。更精确地说,对于一个给定的键,其映射的存在并不阻止垃圾回收器对该键的丢弃,这就使该键成为可终止的,被终
| 止,然后被回收。丢弃某个键时,其条目从映射中有效地移除,因此,该类的行为与其他的 Map 实现有所不同。此实现
| 不是同步的。
|
[color=blue]+ -- TreeMap:[/color]该映射根据其键的自然顺序进行排序,或者根据创建映射时提供的 Comparator 进行排序,具体取决于使用的
| 构造方法。此实现不是同步的。
|
[color=blue]+ -- HashMap:[/color]基于哈希表的 Map 接口的实现。此实现提供所有可选的映射操作,并允许使用 null 值和 null 键。(除了
| 非同步和允许使用 null 之外,HashMap 类与 Hashtable 大致相同。)此类不保证映射的顺序,特别是它不保证该顺
| 序恒久不变。此实现不是同步的。
|
[color=blue] +-- SortedMap:[/color] 进一步提供关于键的总体排序 的 Map。该映射是根据其键的自然顺序进行排序的,或者根据通常在创建有
序映射时提供的 Comparator 进行排序。对有序映射的 collection 视图(由 entrySet、keySet 和 values 方法返回
)进行迭代时,此顺序就会反映出来。要采用此排序方式,还需要提供一些其他操作(此接口是 SortedSet 的对应映
射)。

[size=large]Collection接口:[/size] |
[color=blue]+ -- Set接口[/color]:一个不包含重复元素的 collection。更正式地说,set 不包含满足 e1.equals(e2) 的元素对 e1 和 e2,并
| | 且最多包含一个 null 元素。正如其名称所暗示的,此接口模仿了数学上的 set 抽象。
| |
| [color=violet] + -- HashSet:[/color]此类实现 Set 接口,由哈希表(实际上是一个 HashMap 实例)支持。它不保证 set 的迭代顺序;
| | 特别是它不保证该顺序恒久不变。此类允许使用 null 元素。此类为基本操作提供了稳定性能,此实现不是同
| | 步的。
| |
| [color=violet]+ -- LinkedHashSet:[/color]具有可预知迭代顺序的 Set 接口的哈希表和链接列表实现。此实现与 HashSet 的不同之外在
| | 于,后者维护着一个运行于所有条目的双重链接列表。此链接列表定义了迭代顺序,即按照将元素插入到 set
| | 中 的顺序(插入顺序)进行迭代。注意,插入顺序不 受在 set 中重新插入的 元素的影响。此实现不是同步
| | 的。
| |
| [color=violet] + -- TreeSet:[/color]基于 TreeMap 的 NavigableSet 实现。使用元素的自然顺序对元素进行排序,或者根据创建 set 时
| 提供的 Comparator 进行排序,具体取决于使用的构造方法。此实现为基本操作(add、remove 和 contains)
| 提供受保证的 log(n) 时间开销。此实现不是同步的。
|
[color=blue] + -- List接口:[/color]有序的 collection(也称为序列)。此接口的用户可以对列表中每个元素的插入位置进行精确地控制。用户
| 可以根据元素的整数索引(在列表中的位置)访问元素,并搜索列表中的元素。
|
[color=violet] + -- ArrayList:[/color]List 接口的大小可变数组的实现。实现了所有可选列表操作,并允许包括 null 在内的所有元素。
| 除了实现 List 接口外,此类还提供一些方法来操作内部用来存储列表的数组的大小。(此类大致上等同于
Vector类,除了此类是不同步的。)每个 ArrayList 实例都有一个容量。该容量是指用来存储列表元素的数
| 组的大小。它总是至少等于列表的大小。随着向 ArrayList 中不断添加元素,其容量也自动增长。并未指定增
| 长策略的细节,因为这不只是添加元素会带来分摊固定时间开销那样简单。此实现不是同步的。
|
[color=violet] + -- LinkedList[/color]:List 接口的链接列表实现。实现所有可选的列表操作,并且允许所有元素(包括 null)。除了实
| 现 List 接口外,LinkedList 类还为在列表的开头及结尾 get、remove 和 insert 元素提供了统一的命名方
| 法。这些操作允许将链接列表用作堆栈、队列或双端队列。提供先进先出队列操作(FIFO)。此实现不是同步的。
|
[color=violet] + -- Vector:[/color]Vector 类可以实现可增长的对象数组。与数组一样,它包含可以使用整数索引进行访问的组件。但是
,Vector 的大小可以根据需要增大或缩小,以适应创建 Vector 后进行添加或移除项的操作。此实现是同步的

Stack,Queue是逻辑概念,都可以使用linkedlist来实现。(ThinJava P299)


[img]http://dl.iteye.com/upload/attachment/473607/4be97973-4678-32c4-9bc2-6e5a9d3b1075.png[/img]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值