欢迎来到天天文库
浏览记录
ID:10013926
大小:74.50 KB
页数:4页
时间:2018-05-20
《treeset存储元素原理简析》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、使用TreeSet集合存入自定义对象Person,判定重复元素,以及排序的原理新建TreeSet集合TreeSetts=newTreeSet();描述Person类,该类实现了Comparable接口,重写了compareTo方法,所以Person对象具备了比较性,主要比较条件是按照年龄比较,如果年龄相同再比较次要条件(姓名)如果年龄和姓名一致就return0也就是意味着是同一个人。新建Person对象。并加入TreeSet集合中。Personp1=newPerson("jack",20);Personp3=newPerson("rose",18)
2、;Personp4=newPerson("lucy",17);Personp5=newPerson("hmm",16);Personp2=newPerson("jack",20);ts.add(p1);ts.add(p3);ts.add(p4);ts.add(p5);ts.add(p2);自定义元素人classPersonimplementsComparable{privateStringname;privateintage;Person(){}publicPerson(Stringname,intage){this.name=na
3、me;this.age=age;}publicStringgetName(){returnname;}publicvoidsetName(Stringname){this.name=name;}publicintgetAge(){returnage;}publicvoidsetAge(intage){this.age=age;}@OverridepublicinthashCode(){returnthis.name.hashCode()+age*37;}@Overridepublicbooleanequals(Objectobj){if(objin
4、stanceofPerson){Personp=(Person)obj;returnthis.name.equals(p.name)&&this.age==p.age;}else{returnfalse;}}@OverridepublicStringtoString(){return"Person@name:"+this.name+"age:"+this.age;}@OverridepublicintcompareTo(Personp){System.out.println(this+"--compareTo--"+p);if(this.age>p
5、.age){return1;}elseif(this.age
6、3进行比较,当然是p4.compareTo(p1),发现p4.age(17)7、再比较次要条件,姓名也形同,就return0视为同意个元素,无法存入。
7、再比较次要条件,姓名也形同,就return0视为同意个元素,无法存入。
此文档下载收益归作者所有