- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第八章 对象的集合 主要内容 1、对象数组 2、集合 3、list接口 4、Set, SortedSet接口 5、Map, SortedMap接口 6、迭代器(Iterator) 参考教材第七章,ThinkInJava第11章 1、对象数组 数组:在Java提供的存储及随机访问对象序列的各种方法中,数组是效率最高的一种,但数组的大小是固定的,只能用来表达一组同类型数据,在生存期内大小不可变。 对象数组 数组元素是类的对象 所有元素具有相同的类型 每个元素都是一个对象的引用 1.1 对象数组的初始化 静态初始化:在声明和定义数组的同时对数组元素进行初始化,例如: BankAccount[] accounts = { new BankAccount(“Zhang, 100.00), new BankAccount(“Li, 2380.00), new BankAccount(“Wang, 500.00), new BankAccount(“Liu, 175.56), new BankAccount(“Ma, 924.02)}; 动态初始化:使用运算符new,需要经过两步: 首先给数组分配空间 type arrayName[ ]=new type[arraySize]; 然后给每一个数组元素分配空间 arrayName[0]=new type(paramList); … arrayName[arraySize-1]=new type(paramList); 1.2 数组的操作——java.util.Arrays 在java.util包中的Arrays类提供了一些操作数组的方法 int binarySearch(type a[], type key) 对数组进行二分法查找 如果key存在,则返回它在数组a中的位置 如果不存在,则返回它的“-(插入位置-1)” void fill(type a[], type val) 给数组全部或某段数据填充成一个特殊的值 boolean equals(type a[], type a2[]) 两个数组大小相同,并且每一个元素相等 两个null数组是相等的 void sort(type a[]) void sort(type a[], int fromIndx, int toIndex) void sort(type a[], Comparator?c) void sort(type a[], int fromIndx, int toIndex, Comparator?c) 详细用法参看Java API 2、 集合 (Collection) Java中的数组只能保存固定数目的元素,且必须把所有需要的内存单元一次性的申请出来,而不能先创建数组再追加数组元素数量。 所以在对象数量不明确的情况下,类型多样化的情况下,需要更复杂的方法来管理对象。 2.1 Java集合框架(Collection Framework) 集合 计算机科学中有20多个标准的数据结构,如链表,二叉树,栈和hash表等。 Java直接以类库的形式提供了其中的许多数据结构,这些数据结构可以存储对象的集合,并管理对象。 数据结构和类库通称为Java的集合框架(Java Collection Framework)。 集合框架提供了一个通用的接口——java.util.Collection,其中给出了插入,删除等操作一系列方法声明。 Java集合框架中有6种基本的数据结构。 2.1.1集合框架中的6种基本数据结构 List 按照一定次序排列的对象集,对象之间有次序关系,可以包含重复的对象。 Set 无次序的对象集,但这些对象都是唯一的,不重复。 SortedSet 按照升序排列元素的对象集。 Queue JDK1.5引入的新特性,以储存处理之前需要暂存的数据元素,以先进先出(First In First out, FIFO)的方式处理。为线程编程提供帮助。 以上四种均实现了Collection接口。 Map map没有实现Collection接口,用于存储一群成对的对象,这些对象各自保持着“键-值”(key-value)对应关系。即一个是键(如人名),另一个是与键对应的值(如电话号码)。 SortedMap 按键的升序排列的map。 程序员首先应该从list, set, queue, map中做出选择,然后再根据性能和其他必要的特性,选用其中的具体类。 结构示意图 2.1.2 集合框架层次——collection接口 类层次如图,主要包括5个接口、5个抽
文档评论(0)