




已阅读5页,还剩28页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Java类集概述,JAVA基础,本章目标,理解设立类集的目的Java类集接口框架集合类的使用,设立类集的目的,高性能(动态数组、链表)允许不同类型的类集以相同的方式和高度互操作方式工作容易扩展或修改Java实现类集的包是:java.util.*,Java类集接口框架,Collection元素的类集List元素的序列Set没有重复元素的类集SortedSet没有重复元素且排序的类集Map元素为二元偶对的汇集,不能重复。SortedMap在Map基础上,加上排序的要求Iterator一个可遍历总个类集的对象ListIterator可遍历一个序列List的对象,ArrayList类,ArrayList类扩展AbstractList并执行List接口ArrayList是动态数组,采用异步处理方式,ArrayList,List接口,AbstractList类,例题:Careers_Data_01.java,importjava.util.*;publicclassCareers_Data_01publicstaticvoidmain(Stringargs)/创建一个ArrarList对象ArrayListal=newArrayList();System.out.println(a1的初始化大小:+al.size();/addelementstothearraylistal.add(C);/0al.add(A);/1al.add(E);/2al.add(B);/3al.add(D);/4al.add(F);/5/把A2的值加在第2个位置al.add(1,A2);/CA2AEBDFSystem.out.println(a1加入元素之后的大小:+al.size();/显示Arraylist数据System.out.println(a1的内容:+al);/从ArrayList中移除数据al.remove(F);/CA2AEBDal.remove(2);/CA2EBDSystem.out.println(a1删除元素之后的大小:+al.size();System.out.println(a1的内容:+al);,LinkedList类,LinkedList类提供了一个链接列表数据结构,数据1上一个地址下一个地址,第一个元素,数据1上一个地址下一个地址,例题:Careers_Data_02.java,importjava.util.*;publicclassCareers_Data_02publicstaticvoidmain(Stringargs)/创建LinkedList对象LinkedListll=newLinkedList();/加入元素到LinkedList中ll.add(F);ll.add(B);ll.add(D);ll.add(E);ll.add(C);/在链表的第一个位置加上数据ll.addLast(Z);/在链表的最后一个位置上加入数据ll.addFirst(A);/在链表第二个元素的位置上加入数据ll.add(1,A2);System.out.println(ll最初的内容:+ll);/从linkedlist中移除元素ll.remove(F);ll.remove(2);System.out.println(从ll中移除内容之后:+ll);/移除第一个和最后一个元素ll.removeFirst();ll.removeLast();System.out.println(ll移除第一个和最后一个元素之后的内容:+ll);/取得并设置值Objectval=ll.get(2);ll.set(2,(String)val+Changed);System.out.println(ll被改变之后:+ll);,HashSet类,HastSet类扩展AbstractSet并且实现Set接口.该类集使用散列表存储数据。无序列存储,2,1,3,例题:Careers_Data_03.java,importjava.util.*;publicclassCareers_Data_03publicstaticvoidmain(Stringargs)/创建HashSet对象HashSeths=newHashSet();/加入元素到HastSet中hs.add(B);hs.add(A);hs.add(D);hs.add(E);hs.add(C);hs.add(F);System.out.println(hs);,TreeSet类,与HashSet类不同的是TreeSet是有序(升序)存储对象,例题:Careers_Data_04.java,importjava.util.*;publicclassCareers_Data_04publicstaticvoidmain(Stringargs)/创建一TreeSet对象TreeSetts=newTreeSet();/加入元素到TreeSet中ts.add(C);ts.add(A);ts.add(B);ts.add(E);ts.add(F);ts.add(D);System.out.println(ts);,访问类集的方法,Iterator:可获得或删除元素ListIterator:允许双向遍历列表,并可修改单元,例题:Careers_Data_05.java,importjava.util.*;classCareers_Data_05publicstaticvoidmain(Stringargs)/创建一个ArrayList数组ArrayListal=newArrayList();/加入元素到ArrayList中al.add(C);al.add(A);al.add(E);al.add(B);al.add(D);al.add(F);/使用iterator显示a1中的内容System.out.print(a1中原始内容是:);Iteratoritr=al.iterator();while(itr.hasNext()Objectelement=itr.next();System.out.print(element+);System.out.println();,/在ListIterator中修改内容ListIteratorlitr=al.listIterator();while(litr.hasNext()Objectelement=litr.next();/用set方法修改其内容litr.set(element+);System.out.print(a1被修改之后的内容:);itr=al.iterator();while(itr.hasNext()Objectelement=itr.next();System.out.print(element+);System.out.println();/下面是将列表中的内容反向输出System.out.print(将列表反向输出:);/hasPreviours由后向前输出while(litr.hasPrevious()Objectelement=litr.previous();System.out.print(element+);System.out.println();,用类集存放对象,类集合中不光可以存放基本数据类型,也可以存储任何类型的对象,下面用LinkedList实现存放对象的操作,例题:Careers_Data_06.java,importjava.util.*;classAddressprivateStringname;privateStringstreet;privateStringcity;privateStringjob;privateStringcode;Address(Stringn,Strings,Stringc,Stringj,Stringcd)name=n;street=s;city=c;job=j;code=cd;publicStringtoString()returnname+t+street+t+city+job+code;,publicclassCareers_Data_06publicstaticvoidmain(Stringargs)LinkedListml=newLinkedList();/加入元素到LinkedList中ml.add(newAddress(Careers01,中关村01,北京,学生,61801);ml.add(newAddress(Careers02,中关村02,南京,工人,61853);ml.add(newAddress(Careers03,中关村03,广州,农民,61820);Iteratoritr=ml.iterator();while(itr.hasNext()Objectelement=itr.next();System.out.println(element.toString()+n);System.out.println();,HashMap类,HashMap类使用散列表实现Map接口HashMap是一种映射类,Map接口,HashMap类,例题:Careers_Data_07.java,key,value,importjava.util.*;classCareers_Data_07publicstaticvoidmain(Stringargs)/创建HashMap对象HashMaphm=newHashMap();/加入元素到HashMap中hm.put(JohnDoe,newDouble(3434.34);hm.put(TomSmith,newDouble(123.22);hm.put(JaneBaker,newDouble(1378.00);hm.put(ToddHall,newDouble(99.22);hm.put(RalphSmith,newDouble(-19.08);/返回包含映射中项的集合Setset=hm.entrySet();/用Iterator得到HashMpa中的项Iteratori=set.iterator();/显示元素while(i.hasNext()/Map.Entry可以操作映射的输入Map.Entryme=(Map.Entry)i.next();System.out.print(me.getKey()+:);System.out.println(me.getValue();System.out.println();/让JohnDoe中的值增加1000doublebalance=(Double)hm.get(JohnDoe).doubleValue();/用新的值替换掉旧的值hm.put(JohnDoe,newDouble(balance+1000);System.out.println(JohnDoes现在的资金:+hm.get(JohnDoe);,TreeMap类,TreeMap类可以对数据进行排序可以快速检索,例题:Careers_Data_08.java,importjava.util.*;publicclassCareers_Data_08publicstaticvoidmain(Stringargs)/创建TreeMap对象TreeMaptm=newTreeMap();/加入元素到TreeMap中tm.put(JohnDoe,newDouble(3434.34);tm.put(TomSmith,newDouble(123.22);tm.put(JaneBaker,newDouble(1378.00);tm.put(ToddHall,newDouble(99.22);tm.put(RalphSmith,newDouble(-19.08);/返回包含映射中项的集合Setset=tm.entrySet();/用Iterator得到HashMap中的项Iteratori=set.iterator();/显示元素while(i.hasNext()Map.Entryme=(Map.Entry)i.next();System.out.print(me.getKey()+:);System.out.println(me.getValue();System.out.println();/让JohnDoe中的值增加1000doublebalance=(Double)tm.get(JohnDoe).doubleValue();tm.put(JohnDoe,newDouble(balance+1000);System.out.println(JohnDoes现在的资金:+tm.get(JohnDoe);,枚举Enumeration,可以对一个对象的类集中的元素进行枚举booleanhasMoreElements()ObjectnextElement(),Vector类,Vector实现动态数组Vector是同步的,例题:Careers_Data_09.java,importjava.util.*;publicclassCareers_Data_09publicstaticvoidmain(Stringargs)/初始化是3,每次增长2Vectorv=newVector(3,2);System.out.println(初始化大小:+v.size();System.out.println(初始化容量:+v.capacity();v.addElement(newInteger(1);v.addElement(newInteger(2);v.addElement(newInteger(3);v.addElement(newInteger(4);System.out.println(加入四个条件之后的容器大小:+v.capacity();v.addElement(newDouble(5.45);System.out.println(当前容器大小:+v.capacity();v.addElement(newDouble(6.08);v.addElement(newInteger(7);System.out.println(当前大小:+v.capacity();v.addElement(newFloat(9.4);v.addElement(newInteger(10);System.out.println(当前大小:+v.capacity();,v.addElement(newInteger(11);v.addElement(newInteger(12);System.out.println(第一个元素:+(Integer)v.firstElement();System.out.println(最后一个元素:+(Integer)v.lastElement();/判断Vector中是不是有3这个元素if(v.contains(newInteger(3)System.out.println(Vector中有3这个元素);/将Vector元素给Enueration进行输出EnumerationvEnum=v.elements();System.out.println(nElementsinvector:);while(vEnum.hasMoreElements()System.out.print(vEnum.nextElement()+);System.out.println();,Stack类,Stack类(栈)是Vector的子类实现了标准的后进先出堆栈,Vector,Stack,例题:Careers_Data_10.java,importjava.util.*;classCareers_Data_10staticvoidshowpush(Stackst,inta)st.push(newInteger(a);System.out.println(push(+a+);System.out.println(stack:+st);staticvoidshowpop(Stackst)System.out.print(pop-);Integera=(Integer)st.pop();System.out.println(a);System.out.println(stack:+st);publicstaticvoidmain(Stringargs)Stackst=newStack();System.out.println(stack:+st);showpush(st,42);showpush(st,66);showpush(st,99);showpop(st);showpop(st);showpop(st);/出栈的时候会有一个EmptyStackException的异常,需要进行捕捉tryshowpop(st);catch(EmptyStackExceptione)System.out.println(emptystack);,Hashtable,与HashMap相似,但Hashtable是同步的采用映射的方式HashTable不支持迭代函数,key,value,例题:Careers_Data_11.java,例题:Careers_Data_12.java,importjava.util.*;publicclassCareers_Data_11publicstaticvoidmain(Stringargs)/创建一Hashtable对象Hashtablenumbers=newHashtable();/往Hashtable中插入元素numbers.put(one,newInteger(1);numbers.put(two,newInteger(2);numbers.put(three,newInteger(3);/查找键值为two的元素Integern=(Integer)numbers.get(two);if(n!=null)/输出这个键值的值System.out.println(two=+n);,Properties类,Properties是Hasht
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 数字化转型对文化创意产业的推动作用
- 油菜高产种植技术的创新与应用
- 2025年托福口语综合任务5-6专项突破:历年真题详解与技巧提炼
- 牦牛养殖与可持续发展的协同路径
- 人工智能推动远程医疗服务的创新发展
- 民俗文化的跨文化传播与体验设计
- 哲学的生活智慧
- 春季新品盛宴
- 2025合同范本 物料与采购管理系统协议
- 2025办公用品购销合同
- (新版)油田数字化运维理论考试题库-下(判断题)
- YS∕T 1184-2017 原铝液贮运安全技术规范
- 黑龙江省易地调动领导干部周转住房管理办法
- 大型设备吊装安全施工施工方法及工艺要求
- 骨科快速康复(ERAS)
- 四川省成都市金牛区2023-2024学年七年级下学期期末数学试题
- 上海市静安区2023-2024学年八年级下学期期末数学试题(无答案)
- 【现代管理原理与应用课程论文:X公司行政管理存在的问题及优化建议探析3200字】
- 2024年临床执业医师考试真题附答案【培优b卷】
- 《电气安全技术》复习考试题库(含答案)
- 小耳畸形手术配合
评论
0/150
提交评论