資源描述:
《treeset存儲(chǔ)元素原理簡(jiǎn)析》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)。
1、使用TreeSet集合存入自定義對(duì)象Person,判定重復(fù)元素,以及排序的原理新建TreeSet集合TreeSetts=newTreeSet();描述Person類(lèi),該類(lèi)實(shí)現(xiàn)了Comparable接口,重寫(xiě)了compareTo方法,所以Person對(duì)象具備了比較性,主要比較條件是按照年齡比較,如果年齡相同再比較次要條件(姓名)如果年齡和姓名一致就return0也就是意味著是同一個(gè)人。新建Person對(duì)象。并加入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進(jìn)行比較,當(dāng)然是p4.compareTo(p1),發(fā)現(xiàn)p4.age(17)7、再比較次要條件,姓名也形同,就return0視為同意個(gè)元素,無(wú)法存入。