java第七章容器(内容非图片,可直接复制操作).doc

java第七章容器(内容非图片,可直接复制操作).doc

ID:56580337

大小:189.50 KB

页数:18页

时间:2020-06-28

java第七章容器(内容非图片,可直接复制操作).doc_第1页
java第七章容器(内容非图片,可直接复制操作).doc_第2页
java第七章容器(内容非图片,可直接复制操作).doc_第3页
java第七章容器(内容非图片,可直接复制操作).doc_第4页
java第七章容器(内容非图片,可直接复制操作).doc_第5页
资源描述:

《java第七章容器(内容非图片,可直接复制操作).doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、六节:容器1.容器API★Jdk所提供的容器位于java.util包内★容器API的类图结构如下图所示:右边:一对一对往里装Map:定义存储“键(key)---值(value)映射对”的方法左边:一个一个往里装Collection:容器(分了两子接口)1.set:无顺序,不重复(如数学集合)无下标,只能用Iterator逐一遍历2.list:有顺序,可重复(两数eauals即算重复)按先来后到的顺序排序,有下标★collection接口中所定义的方法:add():方法添加remove():删去方法(重要)importjava.util

2、.*;publicclassuniltset{publicstaticvoidmain(String[]args){Collectionc=newArrayList();//c只能用collection类的方法c.add("hello");c.add(newdate1(2012,12,29));//此包Stringtest2里已有date1类c.add(newInteger(100));//c.add(inti=100);是错的,因为int是存放在栈内存里的,会随时清空,只能装对象System.out.println(c.size()

3、);System.out.println(c);c.remove("hello");//hello被去掉,String对象在datesegment内存里一样字符为同一对象(数据内存里的节约办法)c.remove(newInteger(100));//100被去掉,Integer类重写了equals方法,只要值相同,对象视为相同System.out.println(c.remove(newdate1(2012,12,29)));//false:20121229未被去掉,不是同一对象System.out.println(c);}}结果:3

4、[hello,20121229,100](collection的对象打印时的格式)false[20121229]为了使两个对象也能相等,现在重写date1里的equals方法,注意重写equals方法应要重写hashcode方法(当类的对象当做索引时会用hashcode方法)classdate1{Stringyear,month,day;date1(Stringy,Stringm,Stringday){year=y;month=m;this.day=day;}publicStringtoString(){returnyear+""+m

5、onth+""+day;}//此处开始重写date1类equals方法,供容器章目使用publicbooleanequals(Objectobj){if(objinstanceofdate1){date1d=(date1)obj;return(year.equals(d.year))&&(month==d.month)&&(day==d.day);}这里写equals方法必须是对象才能写,String是类,这里如果写int就错了,int是基本类型,没有方法returnsuper.equals(obj);(如果obj不是date1类的,

6、就返回父类方法)}publicinthashCode(){returnyear.hashCode();//引索的date1对象这里}}则上个函数结果:[]20121229去掉了2.Iterator接口(游标器,去遍历每个元素)所有实现了Collection接口的容器类都有一个Iterator方法用以返回一个实现了Iterator接口的对象Iterator对象称作迭代器,用以方便的实现对容器内元素的遍历操作Iterator接口定义了如下方法:booleanhasNext(); 判断游标右边是否有元素Objectnext();返回游标右边

7、的元素并将游标游到下一个位置Voidremove();删除游标左面的元素,在执行完next之后该操作只能执行一次importjava.util.*;classname{StringfirstName,lastName;name(Stringf,Stringl){firstName=f;lastName=l;}publicStringtoString(){//重写toStringreturnfirstName+","+lastName;}}publicclassIteratorTest{publicstaticvoidmain(Stri

8、ng[]args){Collectionc=newHashSet();c.add(newname("f1","l1"));c.add(newname("f2","l2"));c.add(newname("f3","l3"

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。