Java容器类教学课件_第1页
Java容器类教学课件_第2页
Java容器类教学课件_第3页
Java容器类教学课件_第4页
Java容器类教学课件_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Java容器类本篇说明介绍Java容器类常用用法主要目的:针对后续开发所需知识点,不全面介绍本篇内容Java数组Java容器类一、数组数组是相同类型的、用一个标识符名称封装到一起的一个基本类型数据序列或对象序列数组通过方括号下标操作符[]来定义和使用定义数组数组初始化int[]ainta[]int[]a;a=newint[10];

int[]a=newint[10];

对象数组(假定已定义Student类)数组元素个数是固定的,在定义和初始化时指定访问时通过下标(从0开始,最大下标数—数组长度-1),一旦访问下标过界,会出现运行期错误定义和初始化数组后,数组尺寸不能改变Student[]s=newStudent[10];

数组示例采用JUnit单元测试导入JUnitJAR包编写单元测试方法其他机器拷回去的项目,如果JAR包找不到(位置不对),把JAR包删掉重新导入单元测试方法增加注解@Test,如果@不自动提示,增加提示window-Preference-Java-Editor-ContentAssistantArrayTestProject二、Java容器类2.1容器类概念Java容器:JavaAPI所提供的一系列类,可以用于动态存放多个对象JDK所提供的容器API位于java.util包内2.2JavaCollectionsFramework2.3Java容器常用接口Collection接口——定义了存取对象的方法,其中两个常用的子接口List接口:存放的元素有序且允许元素有重复Set接口:存放的元素不允许重复Map接口:定义了存储“键(Key)—值(Value)映射对”的方法程序中经常使用的:List接口、Set接口和Map接口Java容器类和数组的区别数组容量是固定的,容器类的容量可以自动调节容器类只能用来存放对象,不能存储基本数据类型(可以存储基本数据类型的包装类),数组没有此限制2.3.1ListList接口是Collection的子接口,实现List接口的容器类中的元素是有顺序的,而且可以重复元素:对象、实例有序:元素存入的顺序与取出顺序一致重复:两个对象通过equals方法比较后相等List容器中的元素都对应一个整数型的序号记载其在容器中的位置,可以根据序号存取容器中的元素List接口的常用方法voidadd(Objectelement);//添加元素,默认添加到最后voidadd(intindex,Objectelement);//按指定序号添加元素Objectget(intindex);//根据指定序号获取元素Objectremove(intindex);//移除指定序号处的元素intindexOf(Objectelement);//获取元素的序号intsize();//获取容器元素个数Iteratoriterator();//返回一个迭代器对象,实现对容器内元素的遍历操作List接口具体实现类ArrayList(常用)内部存储采用数组结构实现的List容器LinkedList内部存储采用双向链表结构实现的List容器Vector示例ListTestProjectList容器示例说明良好习惯,采用“面向接口编程”方式声明采用接口类型,指向具体实现类的实例对象循环遍历List容器:建议采用Iterator(迭代器)实现方式Listlist=newArrayList();Listlist=newLinkedList();Iterator接口说明所有实现了Collection接口的容器类都有一个iterator()方法,用以返回一个实现了Iterator接口的对象Iterator对象称作迭代器,用以方便地实现对容器内元素的遍历操作Iterator接口定义的常用方法booleanhasNext();//判断是否有下一个元素Objectnext();//返回下一个元素voidremove();//删除当前元素2.3.2SetSet接口是Collection的子接口,实现Set接口的容器类中的元素是无序的,而且不可以重复元素:对象,实例无序:不保证元素存入顺序与取出顺序一致重复:两个对象通过equals方法比较后相等SetSet接口具体实现类HashSet(常用)根据哈希码进行存放存放元素是无序的,存放元素不重复LinkedHashSet存放元素有序TreeSetSet示例SetTestProjectSet示例说明良好习惯,采用“面向接口编程”方式声明采用接口类型,指向具体实现类的实例对象循环遍历:采用Iterator(迭代器)实现方式对于要存放到Set容器中的自定义类对象,最好重写equals()和hashCode()方法以实现对象相等规则Setsets=newHashSet();Setsets=newLinkedHashSet();equals方法说明自定义类,equals方法继承自Object,默认比较对象的地址预定义类,比如String,已经重写了equals方法,判断内容是否相等2.3.3Map实现Map接口的容器类用来存储“键—值”映射对Map接口常用实现类HashMap(常用)内部“键”采用Set,根据哈希码进行存放TreeMapHashtableMap中的“键”采用Set来存放,“键”不能重复常用String作为Map的“键”Map存储结构MapValue值1Key值1Value值2Key值2Value值3Key值3…Map存储结构(名/值对)值1值2值3值4值5值6值7值801234567数组值1值2值3值4值5值6值7值8名1名2名3名4名5名6名7名8mapMap数据结构将值(value)与名字(Key)关联存储根据名字(Key)取对应值(value)Map接口的常用方法HashMap示例Objectput(Objectkey,Objectvalue);//存放一个”键—值对“Objectget(Objectkey);//根据指定”键”获取对应的值Objectremove(Objectkey);//移除指定”键“对应的值booleancontainKey(Objectkey);//是否包含指定键booleancontainValue(Objectvalue);//是否包含指定值SetkeySet();//返回此Map中所有“键”的一个Setintsize();//容器元素个数MapTestProject2.4容器的泛型操作产生起因:JDK1.4以前,装入容器的类型都被当做Object对待,从而失去自己的实际类型从容器中取出时需要转型,效率低下解决方法:定义容器时,利用泛型技术指定容器中对象的类型利用Iterator迭代遍历时,利用泛型指定迭代对象类型从容器中取出元素和利用Iterator迭代元素时,不再需要转型示例ListTest/SetTest/MapTestProject2.5总结掌握常用容器类用法List容器(有序,允许重复)ArrayListLinkedListSet容器HashSet(无序,不允许重复)LinkedHashSet(有序,不允许重复)Map容器(key-value)HashMap掌握泛型容器用法以下T,T1,T2代表具体对象类型采用Se

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论