`

认识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的学习历程.pdf

    在熟悉了Java内置的数据结构后,进一步研究Apache的Java Collections Framework实现,如Apache Commons Collections,可以加深对高级数据结构设计的认识。 总的来说,Java的学习是一个循序渐进的过程,从基础语言...

    Java学习书籍.pdf

    在深入研究Java Collections Framework之后,Apache Commons Collections提供了另一个值得探索的集合框架,它提供了一些额外的功能和优化,可以作为Sun提供的框架的补充。这两个框架的对比和研究能让你对Java的集合...

    数据结构与Java面向对象程序设计课程之间的有效衔接.pdf

    通过这种映射关系,可以在教学中将Java Collections框架的讲授与数据结构的知识体系相结合,从而加深学生对数据结构在Java编程中应用的认识。 文章强调,Java Collections框架的设计目的主要是满足高性能、一致性、...

    java评分管理系统

    Java的Collections框架提供了sort()方法,可以对List接口的实现类进行排序。根据需求,可以选择升序或降序排列,也可以自定义比较器进行复杂排序。排序后的数据会更新到视图上,通过JTable或者JList组件呈现给用户,...

    java反序列香草

    1. **不安全的反序列化库**:某些Java库(如Apache Commons Collections)在反序列化时没有足够的安全性检查,可能导致远程代码执行。攻击者可以通过构造恶意的序列化对象来触发这些库的漏洞。 2. **未验证的数据源...

    JAVA 基础教材 PDF

    1. **认识Java**:这一章通常会介绍Java的历史、特点、应用领域以及其与其他编程语言的对比。它还会解释Java平台,包括Java虚拟机(JVM)的概念,以及如何安装和配置Java开发环境。 2. **Java虚拟机简介**(第02章...

    Java开发详解.zip

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

    java基础必读

    Java集合框架(Java Collections Framework)为处理对象集合提供了丰富的接口和类。其中包括集合接口(The Collection Interface)、列表接口(The List Interface)、映射接口(The Map Interface)等。这些接口...

    Java软件开发实战 Java基础与案例开发详解 2-7 java上机练习 共5页.pdf

    1-2 认识java语言 1-3 java平台的体系结构 1-4 java SE环境安装和配置 2-1 java程序简介 2-2 计算机中的程序 2-3 java程序 2-4 java类库组织结构和文档 2-5 java虚拟机简介 2-6 java的垃圾回收器 2-7 java上机练习 3...

    Java软件开发实战 Java基础与案例开发详解 3-10 java基础知识章节练习 共4页.pdf

    1-2 认识java语言 1-3 java平台的体系结构 1-4 java SE环境安装和配置 2-1 java程序简介 2-2 计算机中的程序 2-3 java程序 2-4 java类库组织结构和文档 2-5 java虚拟机简介 2-6 java的垃圾回收器 2-7 java上机练习 3...

    Java软件开发实战 Java基础与案例开发详解 9-5 java程序国际化的实现 共9页.pdf

    1-2 认识java语言 1-3 java平台的体系结构 1-4 java SE环境安装和配置 2-1 java程序简介 2-2 计算机中的程序 2-3 java程序 2-4 java类库组织结构和文档 2-5 java虚拟机简介 2-6 java的垃圾回收器 2-7 java上机练习 3...

    Java软件开发实战 Java基础与案例开发详解 10-9 练习题 共5页.pdf

    #### 1.2 认识Java语言 Java语言具有跨平台性(一次编写,到处运行)、面向对象、健壮性和安全性等特点。它的设计目标是让程序员能够更容易地开发出稳定可靠的软件系统。 #### 1.3 Java平台的体系结构 Java平台...

    国家计算机二级JAVA考试大纲

    8. **了解Java的应用领域**:对Java在实际项目中的应用场景有一定的认识。 #### 考试内容详解 1. **Java语言的特点和实现机制**:深入探讨Java的跨平台性、内存管理机制、垃圾回收机制等。 2. **Java体系结构**: ...

    Java基础教程.md.pdf

    ##### 1.1 认识Java - **诞生时间**:1995年5月23日,Java语言由Sun Microsystems公司推出。 - **创始人**:James Gosling,通常被称为“Java之父”。 ##### 1.2 Java的发展史 - **起源**:Java最初被设计用于消费...

    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...

    Java软件开发实战 Java基础与案例开发详解 11-8 练习题 共5页.pdf

    1-2 认识java语言 1-3 java平台的体系结构 1-4 java SE环境安装和配置 2-1 java程序简介 2-2 计算机中的程序 2-3 java程序 2-4 java类库组织结构和文档 2-5 java虚拟机简介 2-6 java的垃圾回收器 2-7 java上机练习 3...

    Java软件开发实战 Java基础与案例开发详解 6-4 访问修饰符 共5页.pdf

    1-2 认识java语言 1-3 java平台的体系结构 1-4 java SE环境安装和配置 2-1 java程序简介 2-2 计算机中的程序 2-3 java程序 2-4 java类库组织结构和文档 2-5 java虚拟机简介 2-6 java的垃圾回收器 2-7 java上机练习 3...

    Java软件开发实战 Java基础与案例开发详解 4-6 数组和排序算法章节练习 共4页.pdf

    1-2 认识java语言 1-3 java平台的体系结构 1-4 java SE环境安装和配置 2-1 java程序简介 2-2 计算机中的程序 2-3 java程序 2-4 java类库组织结构和文档 2-5 java虚拟机简介 2-6 java的垃圾回收器 2-7 java上机练习 3...

    java 基础教程。。。

    10. **Java标准库**:Java提供了一套丰富的API,如Math类用于数学运算,Date和Calendar类处理日期和时间,以及Collections框架的各种实用工具类。 通过这个基础教程,你将逐步建立起对Java语言的基本理解,为进一步...

Global site tag (gtag.js) - Google Analytics