Collection类的功能描述

一、在 Java2 中,它被称为:Collection API 
 
JDK 1.2 Collection接口列表 (Interface) 
+————————————————————————————————————+ 
|  接口名     |       描述                                               | 
|————————————————————————————————————| 
| Collection  | 实现一个为排序对象组。集合有时称作包(bag),            | 
|             | 原因是允许重复,并且不对元素的类型或者顺序做任何限制     | 
|————————————————————————————————————| 
| Comparator  | 提供比较某集合中元素的基本机制                           | 
|————————————————————————————————————| 
| Iterator    | 提供迭代某集合中元素的基本机制                           | 
|————————————————————————————————————| 
| List        | 扩展 Collection 接口以实现一个对象的有序集合。           | 
|             | 本有序列表可以被索引,并可以包含重复值                   | 
|————————————————————————————————————| 
| ListIterator| 扩展 Iterator 接口以支持列表的迭代                       | 
|————————————————————————————————————| 
| Map         | 提供使用键值来存储和查询数据的基本功能。键值必须是唯一的 | 
|————————————————————————————————————| 
| Map.Entry   | Map 的内部接口,制定操作“键-值”对的方法。              | 
|————————————————————————————————————| 
| SortedMap   | 一个 Map ,其中元素按照升序排序。                        | 
|————————————————————————————————————| 
| Set         | 扩展 Collection 接口以实现一个有限集,集不允许重复值     | 
|             | 并且简单的集没有特定的顺序。有些集允许存在空值,但是一旦 | 
|             | 存在则只能存在一次                                       | 
|————————————————————————————————————| 
| SortedSet   | 一个 Set ,其元素按照升序排序。                          | 
+————————————————————————————————————+ 
 
 
JDK 1.2 的 Collection 类 ( Class ) 
+—————————————————————————————————————+ 
|类名                  | 描述                                              | 
|—————————————————————————————————————| 
|Arrays                |提供搜索、排叙述组,以及把数组转换为列表的静态方法 | 
|—————————————————————————————————————| 
|Collections           |提供搜索、排序和操作哪些实现 Collection 接口的对   | 
|                      |象的静态方法                                       | 
|—————————————————————————————————————| 
|AbstractCollection    |提供 Collection 接口的基本实现,并且逐次被其他接   | 
|                      |口扩展                                             | 
|—————————————————————————————————————| 
|AbstractList          |扩展AbstractColletion,并且提供List接口的基本实现  | 
|—————————————————————————————————————| 
|AbstractSequentialList|扩展AbstractList,并且实现顺序化访问列表的功能     | 
|                      |(而不是随机访问列表)                             | 
|—————————————————————————————————————| 
|LinkedList            |扩展AbstractSequentialList,并且实现双向链表       | 
|—————————————————————————————————————| 
|ArrayList             |扩展AbstractList,并实现一个可调整数组             | 
|—————————————————————————————————————| 
|AbstractSet           |扩展AbstractCollection,并提供Set接口的基本实现    | 
|—————————————————————————————————————| 
|HashSet               |扩展AbstractSet,并是一个“键-值”对。给类使用     | 
|                      |哈希表来存储,并不允许重复值,也不能使用空值。     | 
|—————————————————————————————————————| 
|TreeSet               |扩展AbstractSet,并且实现一个支持SortedSet接口     | 
|                      |的有序二进制树。TreeSet中不支持重复值。            | 
|—————————————————————————————————————| 
|AbstractMap           |扩展AbstractCollection,并提供对Map接口的基本实现  | 
|—————————————————————————————————————| 
|HashMap               |扩展AbstractMap,并且实现“键-值”对的映射,       | 
|                      |本类实现哈希表来存储,并不允许重复值。可以使用空值 | 
|—————————————————————————————————————| 
|TreeMap               |扩展AbstractMap,并且实现支持SortedMap接口的       | 
|                      |有序二进制树                                       | 
|—————————————————————————————————————| 
|WeakHashMap           |扩展AbstractMap,并且实现具有弱键的映射。当哈希表  | 
|                      |中条目的键被垃圾收集后,该条目会自动删除。         | 
+—————————————————————————————————————+ 
 
二、Collection API 要点: 
 
Collection API 提供了一个广泛的类和接口的集合。 
 
将这些接口和类进行划分,可以得到基本的四种类型: 
 
1. Collection  
简单的 Collection 可以是无序的,并不必有任何限制。你可以使用任意一种 
类型的对象,而且一个对象可以出现多次。Collection 接口支持添加、删除、 
汇总和检验集合中项的操作方法。 
 
2. List 
List是允许一个对象多次出现的有序集合。顺序可以是自然排序或者按照对象 
加入到集合中的顺序排序。因为列表是有序的,所以它的对象可以被索引。 
ListIterator 接口提供了迭代列表中元素的方法。抽象的列表可以被随机的、 
通过数组、通过链表、或者通过双向链表进行访问。 
 
3. Set  
Set 是不允许有重复值的集合。有些集合允许 null 值,但如果他们有 null  
值的时候,这个值只能出现一次。 
AbstractSet 和 HashSet 类创建了没有排序的集合。 
TreeSet 类则创建通过二进制数来排序的集合。 
 
4. Map 
Map 是使用一系列值来查找或索引所存储数据的集合。借助于映射,你可以根据 
一个关键字(key)域进行搜索。关键字值必须是唯一的。 
在 JDK1.2中,映射替换字典(Dictionary),并作为关键字和值相联系的首选技术。 
AbstractMap, HashMap, WeakHashMap 类创建的映射是无序的。 
TreeMap 类创建的是通过二进制数来排序的映射。 
 
三、基本类型存储值的方法: 
 
1. 数组 
数组为具有唯一值的有序条目提供存储机制。 
当元素数量固定而且都有具体值时,就可以使用数组。 
数组的排序机制使得很难在数组中添加和删除元素。 
如果某数组满了,就需要创建一个新的数组,并在添加元素之前复制当前数组的元素。 
数组不会提供一个特别的搜索机制。 
 
2. 链表 
链表为不需要唯一值的有序条目提供存储机制。 
你可以很容易的在链表中添加和删除元素。一个链表的长度可以动态的改变, 
因为每一个元素都指向下一个(有时候是指向前一个)元素。 
然而,访问链表的速度比访问数组的速度要慢。链表也不会提供特别的搜索机制。 
 
3. 树 
树为升序排列的元素提供存储机制。 
借助于树,你可以轻易的添加和删除元素,只要保持树的顺序即可。 
元素均匀分布的树的搜索效率比链表和树组的要高。 
 
4. 哈希表 
在哈希表中,每个条目都用一对“键-值”对表示。 
键必须是所存储条目的唯一标识符。通过键,你可以快速而有效的在哈希表中查找元素。 
用哈希表在计算哈希值时会产生一些额外的问题。 
哈希表最适合于大型的数据集。 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值