第七章对象群体的组织PPT课件_第1页
第七章对象群体的组织PPT课件_第2页
第七章对象群体的组织PPT课件_第3页
第七章对象群体的组织PPT课件_第4页
第七章对象群体的组织PPT课件_第5页
已阅读5页,还剩103页未读 继续免费阅读

下载本文档

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

文档简介

-,1,第七章对象群体的组织,JAVA语言程序设计,-,2,目录,7.1对象数组7.2二维数组7.3集合(Collection,Map)7.4本章小结,-,3,7.1对象数组,数组在Java提供的存储及随机访问对象序列的各种方法中,数组是效率最高的一种类型检查边界检查优点数组知道其元素的类型编译时的类型检查大小已知代价数组对象的大小是固定的,在生存期内大小不可变,-,4,对象数组数组元素是类的对象所有元素具有相同的类型每个元素都是一个对象的引用,7.1对象数组(续),-,5,静态初始化:在声明和定义数组的同时对数组元素进行初始化,例如:BankAccountaccounts=newBankAccount(“Zhang,100.00),newBankAccount(“Li,2380.00),newBankAccount(“Wang,500.00),newBankAccount(“Liu,175.56),newBankAccount(“Ma,924.02);动态初始化:使用运算符new,需要经过两步:首先给数组分配空间typearrayName=newtypearraySize;然后给每一个数组元素分配空间arrayName0=newtype(paramList);arrayNamearraySize-1=newtype(paramList);,7.1.1用数组存储对象(续)对象数组的初始化,-,6,使用数组存储一个班的学生信息及考试成绩。学生信息包括学号、姓名、三门课(英语、数学、计算机)的成绩及总成绩。首先声明学生类Student属性包括学号(id),姓名(name),英语成绩(eng),数学成绩(math),计算机成绩(comp),总成绩(sum)方法包括构造方法,get方法,set方法,toString方法,equals方法,compare方法(比较两个学生的总成绩,结果分大于,小于,等于),sum方法(计算总成绩)实现Serializable接口,以便对象持久化,,7.1.1用数组存储对象(续)例7_1,-,7,importjava.io.*;publicclassStudentimplementsSerializableprivateStringid;/学号privateStringname;/姓名privateinteng;/英语成绩privateintmath;/数学成绩privateintcomp;/计算机成绩privateintsum;/总成绩publicStudent(Stringid,Stringname,inteng,intmath,intcomp)this.id=id;=name;this.eng=eng;this.math=math;p=comp;sum();/计算总成绩,7.1.1用数组存储对象(续)例7_1,-,8,publicStudent(Students)this.id=s.id;=newString();this.eng=s.eng;this.math=s.math;p=p;sum();/计算总成绩publicvoidsetId(Stringid)this.id=id;publicvoidsetName(Stringname)=name;,7.1.1用数组存储对象(续)例7_1,-,9,publicvoidsetEng(inteng)this.eng=eng;sum();/计算总成绩publicvoidsetMath(intmath)this.math=math;sum();/计算总成绩publicvoidsetComp(intcomp)p=comp;sum();/计算总成绩publicStringgetId()returnid;,7.1.1用数组存储对象(续)例7_1,-,10,publicStringgetName()returnname;publicintgetEng()returneng;publicintgetMath()returnmath;publicintgetComp()returncomp;publicintgetSum()returnsum;voidsum()this.sum=eng+math+comp;,7.1.1用数组存储对象(续)例7_1,-,11,publicStringtoString()returngetId()+t+getName()+t+getEng()+t+getMath()+t+getComp()+t+getSum();publicbooleanequals(Objectx)if(this.getClass()!=x.getClass()returnfalse;Studentb=(Student)x;return(this.getId().equals(b.getId();/比较成绩大小,当前对象成绩比参数对象成绩大时返回1,相等时返回0,其它返回-1.publicintcompare(StudentA)if(this.getSum()A.getSum()return1;elseif(this.getSum()=A.getSum()return0;elsereturn-1;,7.1.1用数组存储对象(续)例7_1,-,12,下面声明班级类StudentClass:属性包括班级名称(name),容量(capacity),学生(students),实际人数(size)。方法包括构造方法,get方法,set方法,toString方法。publicclassStudentClassprivateStringname;/班级名称staticintcapacity=40;/最大容量privateStudentstudents;/学生privateintsize;/实际人数,7.1.1用数组存储对象(续)例7_1,-,13,publicStudentClass(Stringname,intsize)=name;this.size=size;students=newStudentcapacity;publicStringgetName()returnname;publicintgetCapacity()returncapacity;publicStudentgetStudents()returnstudents;,7.1.1用数组存储对象(续)例7_1,-,14,publicintgetSize()returnsize;publicvoidsetName(Stringname)=name;publicvoidsetCapacity(intcapacity)this.capacity=capacity;publicvoidsetSize(intsize)this.size=size;publicvoidsetStudents(Studentstudents)for(inti=0;isize;i+)this.studentsi=newStudent(studentsi);,7.1.1用数组存储对象(续)例7_1,-,15,publicStringtoString()Strings;s=班级:+name+t+容量:+capacity+t+实际人数:+size+nn;s=s+“学号”+“t”+“姓名”+“t”+“英语”+“t”+“数学”+“t”+“计算机”+t+总成绩n;for(inti=0;isize;i+)s=s+studentsi.getId()+t+studentsi.getName()+t+studentsi.getEng()+t+studentsi.getMath()+t+studentsi.getComp()+t+studentsi.getSum()+n;returns;,7.1.1用数组存储对象(续)例7_1,-,16,下面声明测试类Tester1(其中Keyboard类的声明见第3章例3-12),为测试简单,仅生成具有5名学生的班级,5名学生的信息从键盘输入,为了避免以后再重复输入,可将输入的学生信息保存到文件中importjava.io.*;publicclassTester1publicstaticvoidmain(Stringargs)Studentstudents;StudentClassaClass=newStudentClass(软件0201,5);students=newStudent5;for(inti=0;i5;i+)studentsi=newStudent(getAStudent(i+1);aClass.setStudents(students);System.out.println(aClass);,7.1.1用数组存储对象(续)例7_1,-,17,/将学生信息保存到文件stu.ser中。tryFileOutputStreamfo=newFileOutputStream(stu.ser);ObjectOutputStreamso=newObjectOutputStream(fo);for(inti=0;i5;i+)so.writeObject(studentsi);so.close();catch(Exceptione)System.out.println(e);,7.1.1用数组存储对象(续)例7_1,-,18,publicstaticStudentgetAStudent(inti)Studentstudenti;System.out.println(输入第+i+个学生的信息:);System.out.print(学号:);Stringid=Keyboard.getString();System.out.print(姓名:);Stringname=Keyboard.getString();System.out.print(英语成绩:);inteng=Keyboard.getInteger();System.out.print(数学成绩:);intmath=Keyboard.getInteger();System.out.print(计算机成绩:);intcomp=Keyboard.getInteger();studenti=newStudent(id,name,eng,math,comp);returnstudenti;,7.1.1用数组存储对象(续)例7_1,-,19,运行结果如下(其中学生信息的输入只显示一部分):输入第1个学生的信息:学号:250201姓名:李红英语成绩:88数学成绩:76计算机成绩:60输入第2个学生的信息:班级:软件0201容量:40实际人数:5学号姓名英语数学计算机总成绩250201李红887660224250202张林786780225250203董玉梅868075241250204张力706875213250205何为809078248,7.1.1用数组存储对象(续)例7_1运行结果,-,20,查找也称为检索,就是从一组数据中找出所需的具有某种特征的数据项顺序查找对所存储的数据从第一项开始(也可以从最后一项开始),依次与所要查找的数据进行比较,直到找到该数据或将全部元素都找完还没有找到该数据为止,7.1.1用数组存储对象(续)为班级类添加查找方法,-,21,已知学生的学号,查找此学生是否存在。如果存在,返回其在数组中的下标位置;如果不存在,返回-1。顺序查找方法的代码如下publicintfind(Stringid)for(inti=0;i=0)returnfalse;this.studentssize=newStudent(newString(aStudent.getId(),newString(aStudent.getName(),aStudent.getEng(),aStudent.getMath(),aStudent.getComp();size+;returntrue;,7.1.1用数组存储对象(续)为班级类添加增加方法,-,23,已知一个Student对象,将此对象从数组中删除publicbooleandel(StudentaStudent)intpos=find(aStudent.getId();if(pos=-1)returnfalse;for(inti=pos+1;isize;i+)studentsi-1=studentsi;size-;returntrue;,7.1.1用数组存储对象(续)为班级类编写删除方法,-,24,已知学号,删除一个学生publicbooleandel(Stringid)intpos=find(id);if(pos=-1)returnfalse;for(inti=pos+1;iaj+1。第二步,将ai插入到aj之后。在插入之前,需要先保存ai的值,之后将aj+1、an-1依次向后移一位(后移操作也可在第一步的查找过程中进行),7.1.2对数组元素进行排序(续)直接插入排序,-,33,在StudentClass中增加直接插入排序方法insertSort,代码如下publicvoidinsertSort()Studenttemp;for(inti=1;i-1,7.1.2对数组元素进行排序(续)例7_3,-,34,7.1.3在已排序的数组中查找,一批Integer类型的数据已按升序排列好,a1a2an,存储在数组a0、a1、an-1中,现在要对该数组进行查找,看给定的数据x是否在此数组中顺序查找方法按从左向右的顺序查找,当x小于ai时就应该停止查找publicintseqSearch(intx)for(inti=0;(i=Value();i+)if(Value()=x)returni;return-1;二分查找。在0到n-1中间选一个正整数k,用k把原来的有序序列分为三个有序子序列:a0,a1,ak-1akak+1,ak+2,an-1,-,35,具有排序数组的类SortedIntArraysearch方法运用二分查找算法:在给定的数组范围内查找某一元素,如果存在,返回元素所在的下标位置,如果不存在,则返回元素应该在的位置(如果要将此元素插入到数组中,且保持数组仍然有序的位置)将此功能与插入功能相结合,可实现对数组元素进行排序publicclassSortedIntArrayprivateintcapacity;privateIntegerrep;privateintsize;publicSortedIntArray(intn)capacity=n;rep=newIntegercapacity;,7.1.3在已排序的数组中查找(续)例7_4,-,36,publicSortedIntArray()this(100);privateintsearch(inti,intlower,intupper)intindex=lower;if(upper=lower)intmiddle=(upper+lower)/2;intcurrent=Value();if(current=i)index=middle;elseif(currentindex;-j)repj=repj-1;repindex=newInteger(i);+size;returnthis;publicSortedIntArrayremove(inti)intindex=search(i);if(Value()=i)-size;for(intj=index;jsize;+j)repj=repj+1;returnthis;,7.1.3在已排序的数组中查找(续)例7_4,-,38,publicStringtoString()StringtoReturn=;for(inti=0;isize;+i)toReturn+=repi.toString()+,;returntoReturn;staticpublicvoidmain(Stringargs)SortedIntArrayanArray=newSortedIntArray();anArray.insert(4).insert(9).insert(7).insert(1).insert(3).insert(2).insert(8).insert(7);System.out.println(anArray);anArray.remove(1).remove(8).remove(7).remove(3);System.out.println(anArray);,7.1.3在已排序的数组中查找(续)例7_4,-,39,运行结果1,2,3,4,7,7,8,9,2,4,7,9,7.1.3在已排序的数组中查找(续)例7_4运行结果,-,40,7.3集合,数组的优点是Java提供的随机访问对象序列的最有效方法是一个简单的线性序列,访问元素的速度较快数组的缺点大小自创建以后就固定了,在其整个生存期内其大小不可改变数组元素只能是同一类型集合可动态改变其大小可在序列中存储不同类型的数据,-,41,集合把具有相同性质的一类东西,汇聚成一个整体在Java2中有很多与集合有关的接口及类它们被组织在以Collection及Map接口为根的层次结构中,称为集合框架在Java2之前,在Java1.0/1.1中,没有完整的集合框架。只有一些简单的可以自扩展的容器类VectorHashtable,7.3集合(续),-,42,7.3.1Java集合框架,集合框架(JavaCollectionsFramework)为表示和操作集合而规定的一种统一的标准的体系结构提供了一些现成的数据结构可供使用,程序员可以利用集合框架快速编写代码,并获得优良性能包含三大块内容对外的接口:表示集合的抽象数据类型,使集合的操作与表示分开接口的实现:指实现集合接口的Java类,是可重用的数据结构对集合运算的算法:是指执行运算的方法,例如在集合上进行查找和排序,-,43,集合框架接口声明了对各种集合类型执行的一般操作包括Collection、Set、List、SortedSet、Map、SortedMap基本结构如图,7.3.1Java集合框架(续)对外的接口,-,44,类层次如图,包括4个接口(紫色)、4个抽象类(绿色)及6个具体类(黄色),7.3.1Java集合框架(续)Collection接口,-,45,Collection接口声明了一组操作成批对象的抽象方法:查询方法、修改方法查询方法intsize()返回集合对象中包含的元素个数booleanisEmpty()判断集合对象中是否还包含元素,如果没有任何元素,则返回truebooleancontains(Objectobj)判断对象是否在集合中booleancontainsAll(Collectionc)判断方法的接收者对象是否包含集合中的所有元素,7.3.1Java集合框架(续)Collection接口,-,46,修改方法包括booleanadd(Objectobj)向集合中增加对象booleanaddAll(Collectionc)将参数集合中的所有元素增加到接收者集合中booleanremove(Objectobj)从集合中删除对象booleanremoveAll(Collectionc)-将参数集合中的所有元素从接收者集合中删除booleanretainAll(Collectionc)在接收者集合中保留参数集合中的所有元素,其它元素都删除voidclear()删除集合中的所有元素,7.3.1Java集合框架(续)Collection接口,-,47,Set接口扩展了Collection禁止重复的元素,是数学中“集合”的抽象对equals和hashCode操作有了更强的约定,如果两个Set对象包含同样的元素,二者便是相等的实现它的两个主要类是哈希集合(HashSet)及树集合(TreeSet)SortedSet接口一种特殊的Set其中的元素是升序排列的,还增加了与次序相关的操作通常用于存放词汇表这样的内容,7.3.1Java集合框架(续)Set、SortedSet接口,-,48,List接口扩展了Collection可包含重复元素元素是有顺序的,每个元素都有一个index值(从0开始)标明元素在列表中的位置实现它的四个主要类是VectorArrayList:一种类似数组的形式进行存储,因此它的随机访问速度极快LinkedList:内部实现是链表,适合于在链表中间需要频繁进行插入和删除操作栈Stack,7.3.1Java集合框架(续)List接口,-,49,Map接口不是Collection接口的继承用于维护键/值对(key/valuepairs)描述了从不重复的键到值的映射,是一个从关键字到值的映射对象其中不能有重复的关键字,每个关键字最多能够映射到一个值SortedMap接口一种特殊的Map,其中的关键字是升序排列的与SortedSet对等的Map,通常用于词典和电话目录等,7.3.1Java集合框架(续)Map、SortedMap接口,-,50,接口的实现Collection没有直接的实现,只是作为其他集合接口的最小公分母除Collection以外,其余五个接口都有实现主要的实现有SetHashSetSortedSetTreeSetListVector/ArrayList/LinkedListMapHashMapSortedMapTreeMap,7.3.1Java集合框架(续)接口的实现,-,51,对集合运算的算法大多数算法都是用于操作List对象有两个(min和max)可用于任意集合对象排序算法sort对List重新排序,使其中的元素按照某种次序关系升序排列有两种形式简单形式只是将元素按照自然次序排列第二种形式需要一个附加的Comparator对象作为参数,用于规定比较规则,可用于实现反序或特殊次序排序,7.3.1Java集合框架(续)对集合运算的算法,-,52,洗牌算法shuffle其作用与排序算法恰好相反,它打乱List中的任何次序。也就是说以随机方式重排元素,任何次序出现的几率都是相等的在实现偶然性游戏的时候,这个算法很有用,例如洗牌常规数据处理算法reverse::将一个List中的元素反向排列fill:用指定的值覆写List中的每一个元素,这个操作在重新初始化List时有用copy::接受两个参数,目标List和源List,将源中的元素复制到目标,覆写其中的内容。目标List必须至少与源一样长,如果更长,则多余的部分内容不受影响,7.3.1Java集合框架(续)对集合运算的算法,-,53,查找算法binarySearch使用二分法在一个有序的List中查找指定元素有两种形式第一种形式假定List是按照自然顺序升序排列的第二种形式需要增加一个Comparator对象,表示比较规则,并假定List是按照这种规则排序的。寻找最值用于任何集合对象min和max算法返回指定集合中的最小值和最大值这两个算法分别都有两种形式简单形式按照元素的自然顺序返回最值另一种形式需要附加一个Comparator对象作为参数,并按照Comparator对象指定的比较规则返回最值,7.3.1Java集合框架(续)对集合运算的算法,-,54,Arrays类Java集合框架提供了一套专门用于操作数组的实用方法,它们作为静态方法存在该类中还包括可以将数组视为列表(List)的静态工厂常用方法fill(typea,typeval):给数组填充,就是简单地把一个数组全部或者某段数据填成一个特殊的值equals(typea,typeb):实现两个数组的比较,相等时返回truesort(typea):对数组排序binarySearch():对数组元素进行二分法查找Arrays.asList(Objecta):实现数组到ArrayList的转换,7.3.1Java集合框架(续)数组实用方法,-,55,数组的填充和复制importjava.util.*;publicclassCopyingArrayspublicstaticvoidmain(Stringargs)inti=newint25;intj=newint25;Arrays.fill(i,47);Arrays.fill(j,99);System.arraycopy(i,0,j,0,i.length);intk=newint10;Arrays.fill(k,103);System.arraycopy(i,0,k,0,k.length);Arrays.fill(k,103);System.arraycopy(k,0,i,0,k.length);Integeru=newInteger10;Integerv=newInteger5;Arrays.fill(u,newInteger(47);Arrays.fill(v,newInteger(99);System.arraycopy(v,0,u,u.length/2,v.length);JDK1.5,可使用Arrays.toString函数方便的显示出数组的内容,7.3.1Java集合框架(续)数组实用方法,-,56,数组的比较importjava.util.*;publicclassComparingArrayspublicstaticvoidmain(Stringargs)inta1=newint10;inta2=newint10;Arrays.fill(a1,47);Arrays.fill(a2,47);System.out.println(Arrays.equals(a1,a2);/truea23=11;System.out.println(Arrays.equals(a1,a2);/falseStrings1=newString5;Arrays.fill(s1,Hi);Strings2=Hi,Hi,Hi,Hi,Hi;System.out.println(Arrays.equals(s1,s2);/true,7.3.1Java集合框架(续)数组实用方法,-,57,7.3.2向量(Vector,ArrayList),Vector/ArrayList实现了Collection接口的具体类能够存储任意对象,但通常情况下,这些不同类型的对象都具有相同的父类或接口不能存储基本类型(primitive)的数据,除非将这些数据包裹在包裹类中其容量能够根据空间需要自动扩充增加元素方法的效率较高,除非空间已满,在这种情况下,在增加之前需要先扩充容量Vector方法是同步的,线程安全ArrayList方法是非同步的,效率较高,-,58,Vector类的构造方法VectormyVector=newVector();/初始容量为10VectormyVector=newVector(intcap);VectormyVector=newVector(Collectioncol);以参数col中的元素进行初始化也可用数组元素生成,但需先将数组转换成List对象,如Stringnum=one,two,three,four,five;VectoraVector=newVector(java.util.Arrays.asList(num);ArrayList的构造方法与Vector类似ArrayListmyList=newArrayList();ArrayListmyList=newArrayList(intcap);ArrayListmyList=newArrayList(Collectioncol);,7.3.2向量(Vector,ArrayList)(续)构造方法,-,59,本节所有常用方法如无特殊说明,为Vector,ArrayList类共有之方法voidadd(Objectobj)添加一个对象,如VectorteamList=newVector();teamList.add(ZhangWei);teamList.add(LiHong);booleanaddAll(Collectioncol)添加整个集合,如果接收者对象的结果有变化,则返回true,如VectorteamList=newVector();teamList.add(ZhangWei);teamList.add(LiHong);VectoryourList=newVector();yourList.addAll(teamList);,7.3.2向量(Vector,ArrayList)(续)常用方法1,-,60,intsize()返回元素的个数。booleanisEmpty()如果不含元素,则返回trueObjectget(intpos)返回指定位置的元素,如VectorteamList=newVector();teamList.add(ZhangWei);teamList.add(LiHong);teamList.add(YuHongshu);teamList.get(1);/返回LiHongteamList.get(3);/产生例外ArrayIndexOutOfBoundsException,7.3.2向量(Vector,ArrayList)(续)常用方法2,-,61,voidset(intpos,Objectobj)用参数对象替换指定位置的对象,如VectorteamList=newVector();teamList.add(ZhangWei);teamList.add(LiHong);teamList.add(YuHongshu);teamList.set(2,LiuNa);System.out.println(teamList);/显示ZhangWei,LiHong,LiuNateamList.set(3,MaLi);/产生例外ArrayIndexOutOfBoundsException,7.3.2向量(Vector,ArrayList)(续)常用方法3,-,62,booleanremove(Objectobj)去除给定对象的第一次出现,如果找到了对象,则返回true。去除一个对象后,其后面的所有对象都依次向前移动。如VectorteamList=newVector();teamList.add(ZhangWei);teamList.add(LiHong);teamList.add(YuHongshu);teamList.remove(LiHong);teamList.remove(WangHong);/不做任何事,也不出现错误System.out.println(teamList);/显示ZhangWei,YuHongshu,7.3.2向量(Vector,ArrayList)(续)常用方法4,-,63,Objectremove(intpos)去除给定位置的元素,并返回被去除的对象。如VectorteamList=newVector();teamList.add(ZhangWei);teamList.add(LiHong);teamList.add(YuHongshu);teamList.remove(0);/去除ZhangWeiteamList.remove(0);/去除LiHongSystem.out.println(teamList);/显示YuHongshuteamList.remove(1);/产生例外ArrayIndexOutOfBoundsException,7.3.2向量(Vector,ArrayList)(续)常用方法5,-,64,booleanremoveAll(Collectioncol)从接收者对象中去除所有在参数对象中出现的元素,如果接收者对象的结果有变化,则返回true。如VectorteamList=newVector();teamList.add(ZhangWei);teamList.add(LiHong);teamList.add(YuHongshu);VectoryourList=newVector();yourList.add(YuHongshu);yourList.add(HeLi);yourList.add(ZhangWei);teamList.removeAll(yourList);System.out.println(teamList);/显示LiHong,7.3.2向量(Vector,ArrayList)(续)常用方法6,-,65,voidclear()去除所有的元素booleancontains(Objectobj)返回是否包含指定的对象,如果包含则返回true;否则,返回falsebooleancontainsAll(Collectioncol)返回是否包含参数col中的所有对象intindexOf(Objectobj)返回给定对象在Vector/ArrayList中第一次出现的位置,如不存在,则返回-1。如VectorteamList=newVector();teamList.add(ZhangWei);teamList.add(LiHong);teamList.indexOf(LiHong);/返回1。teamList.indexOf(ZhangLi);/返回-1。,7.3.2向量(Vector,ArrayList)(续)常用方法7,-,66,Enumerationelements()返回包含Vector中所有元素的Enumeration类对象。该方法只能应用于Vector对象,不能应用于ArrayList对象。如VectorteamList=newVector();teamList.add(ZhangWei);teamList.add(LiHong);teamList.add(YuHongshu);teamList.elements();/返回Enumeration类对象。Iteratoriterator()返回包含Vector/ArrayList中所有元素的Iterator类对象,7.3.2向量(Vector,ArrayList)(续)常用方法8,-,67,当使用get()方法取出Vector中的元素时,返回的类型都是Object类型。Vector的使用者需要记住存入对象的具体类型,当使用get()方法取出后,再塑型成其本来的类型。例如,创建Customer类对象的Vector如下:Stringnames=Zhang,Li,Wang,Zhao;Vectorv=newVector();for(inti=0;inames.length;i+)Customerc=newCustomer();c.setName(namesi);v.add(c);使用get()方法将Customer对象从Vector中取出后,需要再塑型成Customer类。代码如下:for(inti=0;iv.size();i+)Customerc=(Customer)v.get(i);System.out.println(c.getName();,7.3.2向量(Vector,ArrayList)(续)使用Vector存取对象,-,68,与所有的集合类一样,Vector不能存储原始类型(primitive)的数据,如果要存储,则需要使用包裹类。例如,VectorrateVector=newVector();doublerates=36.25,25.4,18.34,35.7,23.78;for(inti=0;irates.length;i+)rateVector.add(newDouble(ratesi);当从Vector中取出时,需要塑型成相应的包裹类型,之后再还原为原始类型。代码如下:doublesum=0.0;for(inti=0;i4)nums.remove();System.out.println(AfterVector:+aVector);,7.3.3Enumeration及Iterator类(续)例7_8,-,77,运行结果BeforeVector:one,two,three,four,five,six,seven,eight,nine,tenonetwothreefourfivesixseveneightninetenAfterVector:one,two,four,five,six,nine,ten在遍历的过程中,Iterator类对象能够与其对应的集合对象保持一致,没有元素被遗漏,因此能够得到正确的结果,7.3.3Enumeration及Iterator类(续)例7_8运行结果,-,78,7.3.4Map接口及其类层次,Map接口以该接口为根的集合类用于存储“关键字”(key)和“值”(value)的元素对,其中每个关键字映射到一个值当需要通过关键字实现对值的快速存取时使用声明的抽象方法主要有查询方法修改方法两个主要实现类HashTable(1.0)HashMap(1.2),-,79,7.3.4M

温馨提示

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

评论

0/150

提交评论