14Java包装类集合类

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

2009年浙江工业大学软件学院Java程序设计视频教程Java程序设计视频教程本讲主题:包装类与集合类主讲教师:黄洪2包装类包装类将基本数据类型包装成引用数据类型。每个包装类对象都封装了基本类型的一个值。基本数据类型对应的包装类booleanBooleanbyteBytecharCharactershortShortintIntegerlongLongfloatFloatdoubleDouble3包装类包装类中包含了很多有用的方法和常量。创建相应的包装类对象(Xxx表示包装类的名称)Xxx(avalue)Xxx(Strings)类型的最大值与最小值MIN_VALUEMAX_VALUE将字符串转换成该类型对应的基本数据类型publicstaticxxxparseXxx(Strings),其中Xxx表示基本数据类型名称将该类型的对象转换成字符串publicStringtoString()publicstaticStringtoString(xxxanxxxValue)publicstaticStringtoString(inti,intradix)//同时实现数制转换4包装类例:利用包装类Integer的parseInt方法,将字符串转换为整数。publicstaticintparseInt(Strings)throwsNumberFormatException请大家回去自己仔细研究各包装类及其方法。5classTestInteger{publicstaticvoidmain(String[]args){inti1=Integer.parseInt(args[0]);inti2=Integer.parseInt(args[1]);System.out.println(i1+i2);}}6集合类一个集合类对象用于表示了一组对象的集合,是对象的容器。7SetSet不能包含重复的元素。Set接口定义:publicinterfaceSet{//基本方法intsize();booleanisEmpty();booleancontains(Objectelement);booleanadd(Objectelement);booleanremove(Objectelement);Iteratoriterator();…}8ListList是有序的集合,元素可以重复。List接口定义:publicinterfaceListextendsCollection{Objectget(intindex);Objectset(intindex,Objectelement);//Optionalvoidadd(intindex,Objectelement);//OptionalObjectremove(intindex);//OptionalabstractbooleanaddAll(intindex,Collectionc);//Optional//SearchintindexOf(Objecto);intlastIndexOf(Objecto);…}List的实现:Vector,ArrayList,LinkedList9Vector与ArrayListVector与ArrayList功能类似,但Vector是多线程安全的,具有多线程同步机制,能够保证多个线程对同一个Vector对象操作时数据的正确性。而ArrayList则没有处理多线程同步问题。本讲介绍Vector10向量VectorVector是一个类,功能类似数组,但存在以下区别元素的个数可变元素的类型必须是引用类型Vector对象中可以存放的元素个数称为向量的容量(capacity)Vector对象中实际元素的个数称为向量的长度(size)当长度超出容量时,向量对象的容量会自动扩大,一次扩大一个容量增量;容量增量为0时,容量扩大一倍。Vector类在java.util包中,使用时要引入(在类前面用importjava.util.Vector;)或用完整的名称。11向量变量的声明声明格式:Vector向量元素的数据类型变量名例:声明一个元素类型为字符串的向量变量vsVectorStringvs;下面的声明是错误的,因为int不是引用类型。Vectorintvi;下面的声明被允许,但会出现编译警告Vectorvo;12向量的构造方法创建初始容量为10,默认增量为0的向量对象:newVector元素类型()创建初始容量为initialCapacity,默认增量为0的向量对象:newVector元素类型(intinitialCapacity)创建初始容量为initialCapacity,默认增量为capacityInc的向量对象:newVector元素类型(intinitialCapacity,intcapacityInc)构造方法不指定元素类型会出现编译警告13声明向量变量并实例化向量对象的例子变量vs引用一个元素类型为字符串的向量,其初始容量为10,默认增量为0:VectorStringvs=newVectorString();变量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;classTestVector{publicstaticvoidmain(String[]args){VectorStringvs=newVectorString(16,8);vs.add(1);vs.add(2);vs.add(1,3);System.out.println(vs.toString());if(vs.contains(3))System.out.println(\3\isanelementofvs);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类型:HashtableString,Integerht=newHashtableString,Integer();创建一个初始容量为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;classTestHashtable{publicstaticvoidmain(String[]args){HashtableString,Stringht=newHashtableString,String(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成绩统计程序,输入

1 / 28
下载文档,编辑使用

©2015-2020 m.111doc.com 三一刀客.

备案号:赣ICP备18015867号-1 客服联系 QQ:2149211541

×
保存成功