第3周 对象容器
3.1 顺序容器
3.2 对象数组
3.3 集合容器(Set)
3.4 散列表(Hash)
容器是现代程序设计非常基础而重要的手段。
所谓容器,就是“放东西的东西”。数组可以看作是一种容器,但是数组的元素个数一旦确定就无法改变,这在实际使用中是很大的不足。
一般意义上的容器,是指具有自动增长容量能力的存放数据的一种数据结构。
在面向对象语言中,这种数据结构本身表达为一个对象。所以才有“放东西的东西”的说法。
Java具有丰富的容器,Java的容器具有丰富的功能和良好的性能。熟悉并能充分有效地利用好容器,是现代程序设计的基本能力。
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
3.1 顺序容器
我们首先学习的是顺序容器,即放进容器中的对象是按照指定的顺序(放的顺序)排列起来的,而且允许具有相同值的多个对象存在。
在一些书中,将容器(英文为collection或container)翻译为“集合”
记事本程序
需求分析:【无限存储记录,已存储数量,查看,删除记录,列出所有记录】
类的接口设计(使用层次)
【人机交互(UI:用户界面)与业务逻辑(数据处理)部分】:
泛型容器类:
Arraylist< string > ( );【泛型类容器】
容器类有两个类型:容器的类型,元素的类型;
notes.add(s);
Arraylist【系统内部类】的操作
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
3.2 对象数组
当数组的元素的类型是类的时候,数组的每一个元素其实只是对象的管理者而不是对象本身。因此,仅仅创建数组并没有创建其中的每一个对象!
对象数组
FOR-EACH
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
3.3 集合容器(Set)
集合就是数学中的集合的概念:所有的元素都具有唯一的值,元素在其中没有顺序。
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
3.4 散列表(Hash)
传统意义上的Hash表,是能以int做值,将数据存放起来的数据结构。
Java的Hash表可以以任何实现了hash()函数的类的对象做值来存放对象。
Hash表是非常有用的数据结构,熟悉它,充分使用它,往往能起到事半功倍的效果。