`

认识Java Collections (一)

阅读更多
集合(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版本。包含了一些特殊的方法,按照升序来排列元素。


(To be continued....)
分享到:
评论

相关推荐

    Java开发详解.zip

    031314_【第13章:Java类集】_集合工具类:Collections笔记.pdf 031315_【第13章:Java类集】_Stack类笔记.pdf 031316_【第13章:Java类集】_属性类:Properties笔记.pdf 031317_〖第13章:Java类集〗_范例讲解:一...

    JAVA面试题最全集

    对于java流的认识 28.简单描述一下awt与swing区别。 29.简述java编程中事件处理模式。 30.你编写过applet吗?applet的安全权限如何?试列举java application或者applet中与servlet/jsp通信可以采用的方式。 31...

    java基础案例与开发详解案例源码全

    1.2 认识Java语言3 1.2.1 Java语言特性3 1.2.2 JavaApplet4 1.2.3 丰富的类库4 1.2.4 Java的竞争对手5 1.2.5 Java在应用领域的优势7 1.3 Java平台的体系结构7 1.3.1 JavaSE标准版8 1.3.2 JavaEE企业版10 1.3.3 Java...

    AIC的Java课程1-6章

     课程目标  认识Java平台,了解java application和applet的开发,激发学员对Java编程语言的兴趣。  学习和掌握Java变量,运算符,控制结构,数组,方法等基本语法。  培养和建立面向对象编程...

    java面试题

    答:JDO是java对象持久化的新的规范,为java data object的简称,也是一个用于存取某种数据仓库中的对象的标准化API。 CORBA? 答:CORBA标准是公共对象请求代理结构,用途为:用不同的程序设计语言书写,在不同的...

    Webwork.in.Action.中文版 part1/3

    我们希望读者对Java及常用的Java API(如Java Collections API)有基本的认识。由于WebWork的内容几乎都与Web相关,那么读者必须对HTML、JavaScript及CSS具有基本程度的认识。而实际上不管是开发新手还是富有经验的...

    Webwork.in.Action.中文版.part2/3

    我们希望读者对Java及常用的Java API(如Java Collections API)有基本的认识。由于WebWork的内容几乎都与Web相关,那么读者必须对HTML、JavaScript及CSS具有基本程度的认识。而实际上不管是开发新手还是富有经验的...

    Webwork.in.Action.中文版.part3/3

    我们希望读者对Java及常用的Java API(如Java Collections API)有基本的认识。由于WebWork的内容几乎都与Web相关,那么读者必须对HTML、JavaScript及CSS具有基本程度的认识。而实际上不管是开发新手还是富有经验的...

    面向对象技术与UML课件及源代码-by 南邮-陈杨

    1.1认识Java 1.1.1认识编程语言 1.1.2Java的来历 1.1.3Java为什么流行 1.1.4Java的三个版本 1.1.5编程前的准备工作 1.2安装JDK 1.2.1获取JDK 1.2.2安装JDK步骤 1.2.3安装目录介绍 1.2.4环境变量设置 1.3...

    asp.net知识库

    NET FrameWork的Collections支持 .NET的反射在软件设计上的应用 关于跨程序集的反射 实现C#和VB.net之间的相互转换 深入剖析ASP.NET组件设计]一书第三章关于ASP.NET运行原理讲述的补白 asp.net 运行机制初探...

Global site tag (gtag.js) - Google Analytics