第十一章:持有对象(容器)

来源:互联网 发布:登录界面html源码下载 编辑:程序博客网 时间:2024/05/18 02:23
如果一个程序知道所产生的对象的数量是以知的,那么这个程序是非常简单的

1.泛型和类型安全的容器

在JavaSE5之前,主要的问题就是编译器允许你向容器中插入不正确的类型。在引用容器中的对象的时候可能会类型转化错误。
引用了泛型之后,就可以让编译器校验去不去插入不正确的类型。

2.基本概念

Java容器类库中的用途是"保存对象"
1)Collection.一个独立元素的序列。List必须按照插入的顺序保存元素,而Set不能有重复袁术.Queue按照排队规则来确定对象产生的顺序(通常和它们被插入的顺序相同)
2)Map 一组成对的"键值对"对象,允许你使用键来查找值。
注:此处的面向接口编程。在理想的状态下都是和这些接口中的方法打交道。
List<String> list=new ArrayList<String>();
ArrayList 向上转型为List,可调用List中的方法。
LinkedList具有List接口中未包含的额外方法,而TreeMap也有Map接口中为包含的方法。如果你需要使用这些方法就不能将他们向上转型为更通用的接口。

3.添加一组元素

在java.util包中的Arrays和Collections类中有很多实用的方法。

4.List

List承若可以将元素维护在特定的序列中。List接口在Collection的基础上添加了大量方法。
有两种类型的List:
1.基本的ArrayList,他长与随机访问元素,但是在List的中间插入和移动元素时比较慢
2.LinkedList与ArrayList恰恰相反

5.迭代器

仔细想想内部类
迭代器统一了List和Set的处理类型

6.Stack 栈和Queue 队列(先不了解)

7.Set

Set不保存重复的元素(hashcode值)(Map中的"键”)
Set具有和Collection完全一样的接口,没有添加任何额外的功能,实际上Set就是Collection,只是行为不同。

8.Map

map一种将对象(非数字)与对象相关联的设计。HashMap设计用来快速访问,而TreeMap保持"键"始终处于排序状态。LinkedHashMap保持元素插入的顺序
原创粉丝点击