




已阅读5页,还剩23页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Java程序设计视频教程,本讲主题:包装类与集合类,主讲教师:黄洪,2,包装类,包装类将基本数据类型包装成引用数据类型。每个包装类对象都封装了基本类型的一个值。,基本数据类型对应的包装类booleanBooleanbyteBytecharCharactershortShortintIntegerlongLongfloatFloatdoubleDouble,3,包装类,包装类中包含了很多有用的方法和常量。创建相应的包装类对象(Xxx表示包装类的名称)Xxx(avalue)Xxx(Strings)类型的最大值与最小值MIN_VALUEMAX_VALUE将字符串转换成该类型对应的基本数据类型publicstaticxxxparseXxx(Strings),其中Xxx表示基本数据类型名称将该类型的对象转换成字符串publicStringtoString()publicstaticStringtoString(xxxanxxxValue)publicstaticStringtoString(inti,intradix)/同时实现数制转换,4,包装类,例:利用包装类Integer的parseInt方法,将字符串转换为整数。publicstaticintparseInt(Strings)throwsNumberFormatException请大家回去自己仔细研究各包装类及其方法。,5,classTestIntegerpublicstaticvoidmain(Stringargs)inti1=Integer.parseInt(args0);inti2=Integer.parseInt(args1);System.out.println(i1+i2);,6,集合类,一个集合类对象用于表示了一组对象的集合,是对象的容器。,7,Set,Set不能包含重复的元素。Set接口定义:publicinterfaceSet/基本方法intsize();booleanisEmpty();booleancontains(Objectelement);booleanadd(Objectelement);booleanremove(Objectelement);Iteratoriterator();,8,List,List是有序的集合,元素可以重复。List接口定义:publicinterfaceListextendsCollectionObjectget(intindex);Objectset(intindex,Objectelement);/Optionalvoidadd(intindex,Objectelement);/OptionalObjectremove(intindex);/OptionalabstractbooleanaddAll(intindex,Collectionc);/Optional/SearchintindexOf(Objecto);intlastIndexOf(Objecto);List的实现:Vector,ArrayList,LinkedList,9,Vector与ArrayList,Vector与ArrayList功能类似,但Vector是多线程安全的,具有多线程同步机制,能够保证多个线程对同一个Vector对象操作时数据的正确性。而ArrayList则没有处理多线程同步问题。本讲介绍Vector,10,向量Vector,Vector是一个类,功能类似数组,但存在以下区别元素的个数可变元素的类型必须是引用类型Vector对象中可以存放的元素个数称为向量的容量(capacity)Vector对象中实际元素的个数称为向量的长度(size)当长度超出容量时,向量对象的容量会自动扩大,一次扩大一个容量增量;容量增量为0时,容量扩大一倍。Vector类在java.util包中,使用时要引入(在类前面用importjava.util.Vector;)或用完整的名称。,11,向量变量的声明,声明格式:Vector变量名例:声明一个元素类型为字符串的向量变量vsVectorvs;下面的声明是错误的,因为int不是引用类型。Vectorvi;下面的声明被允许,但会出现编译警告Vectorvo;,12,向量的构造方法,创建初始容量为10,默认增量为0的向量对象:newVector()创建初始容量为initialCapacity,默认增量为0的向量对象:newVector(intinitialCapacity)创建初始容量为initialCapacity,默认增量为capacityInc的向量对象:newVector(intinitialCapacity,intcapacityInc)构造方法不指定元素类型会出现编译警告,13,声明向量变量并实例化向量对象的例子,变量vs引用一个元素类型为字符串的向量,其初始容量为10,默认增量为0:Vectorvs=newVector();变量vo引用一个没有指定元素类型的向量,其初始容量为16,默认增量为8:Vectorvo=newVector(16,8);,14,对向量的主要操作,增加元素将指定元素追加到此向量的末尾。booleanadd(Eo)插入元素在此向量的指定位置插入指定的元素,和数组一样index的取值从0开始。voidadd(intindex,Eelement)修改元素用指定的元素替换此向量中指定位置index处的元素。Eset(intindex,Eelement),15,对向量的主要操作(续),删除元素移除此向量中指定位置的元素。Eremove(intindex)移除此向量中指定元素的第一个匹配项,如果向量不包含该元素,则元素保持不变。booleanremove(Objecto)从此向量中移除所有元素。voidclear(),16,对向量的主要操作(续),查询返回向量中指定位置的元素。Eget(intindex)判断指定的对象是否为此向量中的某个元素。booleancontains(Objectelem)返回此向量的第一个元素(位于索引0处的项)。EfirstElement()返回此向量的最后一个元素。ElastElement(),17,对向量的主要操作(续),查询元素的位置索引返回给定参数的第一个匹配项的索引,使用equals方法测试相等性。没有匹配项则返回-1。intindexOf(Objectelem)返回给定参数的第一个匹配项的索引,从index处开始匹配,并使用equals方法测试其相等性。没有匹配项则返回-1intindexOf(Objectelem,intindex)返回指定的对象在此向量中最后一个匹配项的索引。没有匹配项则返回-1。intlastIndexOf(Objectelem)从后往前搜索指定的对象并返回其索引。从指定的索引处开始搜索。没有匹配项则返回-1。intlastIndexOf(Objectelem,intindex),18,对向量的主要操作(续),查询向量的相关信息返回此向量的当前容量。intcapacity()返回此向量中的元素个数。intsize()测试此向量是否不包含元素。booleanisEmpty(),19,对向量的主要操作(续),改变向量的长度或容量设置此向量的长度。如果新长度大于老长度则尾部添加null;如果新长度小于老长度则尾部元素删除;voidsetSize(intnewSize)对此向量的容量进行微调,使其等于向量的当前大小。voidtrimToSize()增加此向量的容量(如有必要),以确保其至少能够保存最小容量参数指定的元素个数。voidensureCapacity(intminCapacity),20,向量使用示例,importjava.util.Vector;classTestVectorpublicstaticvoidmain(Stringargs)Vectorvs=newVector(16,8);vs.add(1);vs.add(2);vs.add(1,3);System.out.println(vs.toString();if(vs.contains(3)System.out.println(3isanelementofvs);vs.remove(3);System.out.println(vs.toString();,21,哈希表/散列表(Hashtable),将数据按“关键字”(key)和“值”(value)配对存放,通过key可以快速找到value。其原理是建立key到value的映射。Java中实现哈希表的有三个类:Hashtable,HashMap,WeakHashMap,他们的区别有三个,详见教材P149。上述三个类在java.util包中。,22,哈希表变量的声明,声明格式Hashtable变量名或者Hashtable变量名注意:哈希表的关键字和值都必须是引用类型第二种声明格式会导致编译警告,23,哈希表的构造方法,用缺省的容量11和装填因子0.75f构造一个新的空哈希表。Hashtable()用指定的初始的容量和缺省的装填因子构造一个新的空哈希表。Hashtable(int)用指定的初始的容量和指定的装填因子构造一个新的空哈希表。Hashtable(int,float)注意:不指明类型也可以,但会导致出现编译警告,24,声明哈希表变量并实例化哈希表对象,按默认的容量和装填因子创建一个哈希表对象,其关键字是String类型,值是Integer类型:Hashtableht=newHashtable();创建一个初始容量为20,装填因子为0.8f的哈希表对象,不指定关键字和值的类型。Hashtableht=newHashtable(20,0.8f);,25,哈希表常用操作,添加元素在该散列表中映射指定的kObject键到指定的vObject值。Vput(kObject,vObject)查找元素返回指定的键kObject在这个散列表中的映射值。Vget(kObject)删除元素从该散列表中删除键值为kObject的元素。Vremove(kObject)清空该散列表使它不包含元素。voidclear(),26,哈希表常用操作(续),检测检测指定的对象是否是该散列表中的一个键。booleancontainsKey(Objectkey)检测在该散列表中某些键是否映射到指定的值。booleancontains(Objectvalue)返回该散列表中的元素个数。intsize(),27,哈希表使用示例,importjava.util.Hashtable;classTestHashtablepublicstaticvoidmain(Stringargs)Hashtableht=newHashtable(20,0.8f);ht.put(许斌,200726630420);ht.put(陈梦瑶,200726470204);System.out.println(ht);System.out.println(ht.get(陈梦瑶);ht.remove(陈梦瑶);System.out.println(ht.get(陈梦瑶);System.out.println(ht.containsKey(陈梦瑶);System.out.println(ht.size();,28,习题,1、编写一个java成绩统计程序,输入一个班的java成绩(含姓名和分数),统计出平
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年二级风力发电运维值班员职业技能鉴定考试题库附答案
- 湖南广益实验中学2026届九年级英语第一学期期末复习检测试题含解析
- 2026届湖北省襄阳市宜城市九年级英语第一学期期末统考试题含解析
- 2026届浙江省杭州市西湖区英语九年级第一学期期末统考试题含解析
- 2026届湖南省郴州市资兴市兴华实验学校九年级英语第一学期期末学业水平测试模拟试题含解析
- 吉林省白城地区大安县2026届九年级化学第一学期期中质量跟踪监视模拟试题含解析
- 智能家居:智能家居委托借款合作协议
- 税务局出口退税出口货物劳务专项审计报告合同
- 离婚协议书(涉及离婚后子女心理辅导争议解决)
- 离婚后子女抚养权调整与财产分割及监护权转移合同
- 1.2 连续分类(课件)数学青岛版二年级上册(新教材)
- 8000字法律毕业论文
- 2025年哈尔滨市呼兰区人民法院公开招聘聘用制书记员、辅警、文员4人考试参考试题及答案解析
- 【2025年】蚌埠市12345政务服务便民热线岗位招聘20名考试笔试试题(含答案)
- 反诈知识竞赛试题及答案
- 眼整形课件教学课件
- 公司法务知识培训会课件
- 2025-2026学年秋季第一学期学校德育工作安排表
- 《汽车电工与电子技术基础》课件(共七章节)
- 2025年全面质量管理知识竞赛题库及参考答案
- 医药行业KA经理工作汇报
评论
0/150
提交评论