java基础之集合框架初识

来源:互联网 发布:网络推广培训计划 编辑:程序博客网 时间:2024/05/17 02:06

1.概念

1.1.集合框架是为表示和操作集合而规定的一种统一的标准的体系结构,在java中的集合框架主要分为两部分:Collection接口和Map接口。

2.集合的种类

2.1.Collection接口和Map接口以及他们的主要实现类(虚框为接口,实框为类)


2.2.Collection接口

2.2.1. Collection是最基本的集合接口(根接口),一个Collection代表一组Object,即Collection的元素(Elements),他也继承于Iterable接口。

2.2.2.为什么继承Iterable接口而不继承Iterator?

1)  因为Iterator接口的核心方法next()或者hasNext()是依赖于迭代器的当前迭代位置的。 如果Collection直接实现Iterator接口,势必导致集合对象中包含当前迭代位置的数据(指针),当集合在不同方法间被传递时,由于当前迭代位置不可预置,那么next()方法的结果会变成不可预知。 除非再为Iterator接口添加一个reset()方法,用来重置当前迭代位置。 但即使这样,Collection也只能同时存在一个当前迭代位置。 而Iterable则不然,每次调用都会返回一个从头开始计数的迭代器。 多个迭代器是互不干扰的。

2)不同的Collection接口的子接口的实现类返回的Iterator具体类型可能不同,Array可能返回ArrayIterator,Set可能返回 SetIterator,Tree可能返回TreeIterator,但是它们都实现了Iterator接口。因此,客户端不关心到底是哪种 Iterator,它只需要获得这个Iterator接口即可,这就是面向对象的威力。

2.2.3. 所有实现Collection接口的类都必须提供两个标准的构造函数:无参数的构造函数用于创建一个空的Collection,有一个Collection参数的构造函数用于创建一个新的Collection,这个新的Collection与传入的Collection有相同的元素。后一个构造函数允许用户复制一个Collection。

2.2.3.Collection的迭代方式

      

<span style="font-size:12px;">Iterator it = collection.iterator(); // 获得一个迭代子while(it.hasNext()){    Object obj = it.next(); // 得到下一个元素}</span>


2.3.Map接口

2.3.1. 将键映射到值的对象。一个映射不能包含重复的键;每个键最多只能映射到一个值,此接口取代 Dictionary 类,后者完全是一个抽象类,而不是一个接口。

2.3.2.所有通用的映射实现类应该提供两个“标准的”构造方法:一个 void(无参数)构造方法,用于创建空映射;一个是带有单个 Map 类型参数的构造方法,用于创建一个与其参数具有相同键-值映射关系的新映射。实际上,后一个构造方法允许用户复制任意映射,生成所需类的一个等价映射。


0 0