认识Java Collections (一)

本文深入解析Java集合框架的核心组件——接口、实现与算法,详细阐述了集合的基本概念、不同类型的集合接口及其特点,以及如何在实际编程中灵活运用这些集合结构。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

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

[color=blue]接口[/color]
核心的Collections接口封装了不同的集合类型,如下图所示:
[img]http://java.sun.com/docs/books/tutorial/figures/collections/colls-coreInterfaces.gif[/img]
这些集合的接口,给予我们在处理集合时忽略特定数据类型的能力。同时,它也是java 集合框架的基础。应当注意,Map并不Collection.
所有的集合接口的声明,都是泛型的,例如:
public interface Collection<E>......
而当你需要一个Collection的实例时,你需要使用特定的对象类型(String Integer 或者你自定义的对象)来替换E,以此来通知编译器在编译时将对象绑定。


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

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

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

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

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

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

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


(To be continued....)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值