分享

认识Java Collections (一)

 昵称5370487 2011-01-04
集合(Collections):也常被叫做容器(Container),是一种将多个元素聚合起来组成一个单元的对象。它常常用来储存、检索、操作聚合的数据。
Java Collections Framework包含以下3个要素:
1.接口
使用抽象的数据类型来表示集合,使集合的操作具有数据独立性,不和特定的数据类型相关
2.实现
实现了接口的定义,可复用的数据结构
3.算法
算法是高效的可复用的功能单元,比如排序、搜索等。同时,算法又具有多态性,同一个算法可以被同一接口的不同实现进行调用。

从接口开始,来观察一下Collections的结构。

接口
核心的Collections接口封装了不同的集合类型,如下图所示:

这些集合的接口,给予我们在处理集合时忽略特定数据类型的能力。同时,它也是java 集合框架的基础。应当注意,Map并不Collection.
所有的集合接口的声明,都是泛型的,例如:
public interface Collection<E>......
而当你需要一个Collection的实例时,你需要使用特定的对象类型(String Integer 或者你自定义的对象)来替换E,以此来通知编译器在编译时将对象绑定。


为了确保Java Collections Interface的可维护性,Java平台并没有提供为每一种接口提供一些特殊需求的变种(这些变种可能包括不可更改的集合、固定长度的集合、只能添加的集合等)。Java平台的做法是,接口中定义的所有操作都被设计成可选的。一个接口的实现允许不支持接口中的方法。当调用一个没有被实现的操作时,则会抛出UnsupportedOperationException异常。

下面是对核心接口的一些描述:
·Collection 是集合体系架构的根,定义了所有集合最基本的操作。但是Java平台并没有给出此接口的具体实现,因为不同的接口有不同的需求,所以,平台实现的是继承此接口的其它子接口,如List Queue等。

·Set  一种不能包含重复元素的集合,是对数学中的集合概念的建模。

·List  一个有序集合,有时也被称作序列(sequence)。使用List,一般要对插入、访问进行成本控制。

·Queue  一个用来容纳具有处理优先级的元素的集合,除了具备基本的集合操外,还实现了一些特殊的插入、弹出及检查操作。
队列是典型的以FIFO处理数据的数据类型,但是,这并不是唯一的选择。除此之外,还有优先级队列等。队列根据实现提供的comparator或者元素的自然序列排列。每一种队列的实现都有自己的元素排列方式。

·Map  Map是一种将key与value相关联的数据结构。不能包含重复的key,每一个key最多只能与一个value关联。

最后两种接口其实是Set与Map的sorted版本。包含了一些特殊的方法,按照升序来排列元素。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多