12、java集合类

 

12、java集合类

12.1、Collection框架概览

包位置:java.util

Collection 层次结构 中的根接口。

Collection 表示一组对象,这些对象也称为 collection

 的元素

一些 collection 允许有重复的元素,而另一些则不允许。

一些 collection 是有序的,而另一些则是无序的。

先来了解下集合框架的类图结构。

12.2、集合框架类图结构



 

 

12.3、List接口简介

List是继承Collection的子接口。

List特性:有序、可重复。重复是针对equals()

实现AbstractList的具体类有:

ArrayList、LinkedList、Vector、Stack

12.4、实现List的类特性简介

12.4.1.ArrayList:

1:可变大小,允许所有元素,包括NULL,没有同步。

2:添加元素时开销较大可在大量插入前调用以下方法来初始化容量。ensureCapacity(int minCap)

3:对元素进行快速随机访问,但是向List中间插入与移除元素的速度很慢。 

 

12.4.2.LinkedList

1:可用作堆栈、队列或双向队列。

2:可变大小,允许所有元素,包括NULL,没有同步。

3:向List中间插入与删除得开销不大,随机访问则相对较慢(可用ArrayList代替)。

 

12.4.3.Vector

1:可变大小,允许所有元素,包括NULL,线程同步。

2:当一个Iterator被创建且正在使用,另一个线程改变了Vector状态,这时再调用Iterator时将抛出ConcurrentModificationException(并发修改)

12.4.4 Iterator接口的认识

Iterator  接口

    所有的collection接口都有一个iterator方法返回的是一个   

    Iterator接口对象

 

    Itertator 对象称为迭代器,为遍历容器内的元素而生

    Itertator所有的collection接口都有一个iterator方法返回的是一个Iterator接口对象

boolean   hasNext();//判断游标右边是否还有元素

object      next(); //返回游标右边的元素游标并往后移动一位

void     remove();//删除游标左边的元素


 

12.4.5 Iterator模式的意图和适用性

意图:

提供一种方法顺序访问一个聚合对象中各个元素, 而又不需暴露该对象的内部表示。

适用性:

访问一个聚合对象的内容而无需暴露它的内部表示。 

支持对聚合对象的多种遍历。 

为遍历不同的聚合结构提供一个统一的接口(即, 支持多态迭代)。 

12.5 实现Set接口的类特性简介

实现Set接口的常用类:HashSet、 TreeSet、 LinkedHashSet特性简介不能包含重复元素,即任意两个元素e1.equal(e2)=false.

1.HashSet: 为快速查找而设计的Set。存入HashSet的对象必须定义hashCode()。 

2.TreeSet: 保持次序的Set,底层为树结构。使用它可以从Set中提取有序的序列(默认从小到大)。 

3.LinkedHashSet: 具有HashSet的查询速度,且内部使用链表维护元素的顺序(插入的次序)。于是在使用迭代器遍历Set时,结果会按元素插入的次序显示。

 

12.6 Collection/Map的子接口

继承自Collection的接口较多,其中常用的接口有:

List

Set

注意Map是独立接口,并未继承Collection

实现Map接口的主要有HashMap,HashTable,SortedHashMap等

实现map接口的常用类有:HashTable、HashMap、WeakHashMap

HashTable:同步,不允许NULL键与NULL值

HashMap:不同步,允许NULL键与NULL值

WeakHashMap:改进后的HashMap,对Key实行弱引用,如果一个Key不再被外部引用,那么该Key可以被GC回收

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值