第二十五课时作业答案set_第1页
第二十五课时作业答案set_第2页
免费预览已结束,剩余1页可下载查看

下载本文档

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

文档简介

1、第二十五课时作业-Set作业答案(作者:晓艺)1.写一段代码,将Person对象作为集合元素,向集合中add若干Person对象。说明下列问题:-1.集合内的元素是否可以相同2.判断元素是否相同的标准是什么无论是HashSet还是TreeSet都不可以添加相同的元素。HashSet的原始标准是 是否为同一个对象。而TreeSet必须自定义标准,如果compareTo或compare方法返回0,则认为是相同元素。2.更改Person类代码,使得年龄相同的Person对象都不能被add进来。(Person 类代码如下:)class Personint age;String name;Person(

2、int age,String name)this.age=age;=name;HashSet:class Personint age;String name;Person(int age,String name)this.age=age;=name;public int hashCode()return 0;public boolean equals(Object o)Person p=(Person)o;return this.age=p.age;TreeSet:class Person implements Comparableint age;Strin

3、g name;Person(int age,String name)this.age=age;=name;public int compareTo(Object o) Person p=(Pesron)o; return this.age - p.age; 3.让2中的Person类实现Comparable接口并且add若干对象,根据年龄的单双数让compareTo返回不同的值,如果是单数返回正值,如果是双数返回负数。 然后循环遍历Treeset,说明遍历顺序原因。class Person implements Comparableint age;Person(int age

4、,String name)this.age=age;public int compareTo(Object o) if(this.age%2=0)return -1;elsereturn 1; TreeSet p=new TreeSet();p.add(new Person(5);p.add(new Person(1);p.add(new Person(4);p.add(new Person(3);建树过程如下:第一个add进来Person对象,在最上层,第二个add进来的Person由于年龄是单数,放在了第一个对象的右边,第三个add进来的Person对象,先和最上层的元素比较,由于年龄是双

5、数则放在了第一个对象的左边,第四个add进来的Person对象,先和最上层的元素比较,由于年龄是单数,所以放在第一个对象的右边,第一个对象的右边有了第二个元素,所以第四个add进来的Person对象又和第二个add进来的Person对象比较,由于年龄为单数,所以放在第二个add进来的Person对象的右边。所以树如下:括号内为对象的年龄。所以遍历的时候若输出每个元素的年龄为 4-5-1-3(TreeSet遍历树的过程都是固定的,具体就是按照 如果大的数在右边,能够从小到大 读出的过程)4.将3中的代码用Comparator实现。class Personint age;Person(int age,String name)this.age=age;class A implements Comparatorpublic int compare(Object s1, Object s2) Person p1=(Person)s1; if(p1.age%2=0)return -1;elsereturn 1;TreeSet p=new TreeSet(

温馨提示

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

评论

0/150

提交评论