国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

TreeSet的自然排序(自定義對象 compareTo方法)

2019-11-14 22:59:32
字體:
來源:轉載
供稿:網友
TreeSet的自然排序(自定義對象 compareTo方法)

》要實現自然排序,對象集合必須實現Comparable接口,并重寫compareTo()方法

》一般需求中描述的是“主要條件”,如:按姓名長度排序。  需注意次要條件 如:長度相同時,姓名內容,年齡等條件是否相等,這決定著是否存入TreeSet集合。

 

package cn.itcast.day21.treeset;/* * 要實現自然排序,就一定要實現Comparable接口,并重寫compareTo()方法 *  * 若不實現Comparable接口,而把對象往TreeSet中添加,就會報ClassCastException *       原因:java.util.TreeMap.put(TreeMap.java:542)  *      Comparable<? super K> k = (Comparable<? super K>) key;//key=集合元素,被強行轉換成接口類型  *  */public class Student implements Comparable<Student>{    PRivate String name;    private int age;        public Student() {        super();    }    public Student(String name, int age) {        super();        this.name = name;        this.age = age;    }    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    public int getAge() {        return age;    }    public void setAge(int age) {        this.age = age;    }        @Override    public int compareTo(Student o) {        int num=this.getName().length()-o.getName().length();        int num2=num==0?this.getName().compareTo(o.getName()):num;        int num3=num2==0?this.getAge()-o.getAge():num2;                return num3;    }}

 

 

package cn.itcast.day21.treeset;import java.util.TreeSet;/* * TreeSet 按照自定義對象Student的姓名長度自然排序 *  *  * 分析: *         A:實現自然排序,元素的類就要實現Comparable接口,并重寫compareTo()方法 *         B:主要條件 姓名長度 *         C:次要條件  姓名內容,年齡 */public class TreeSetDemo {    public static void main(String[] args) {        //創建集合對象        TreeSet<Student> ts=new TreeSet<Student>();        //創建元素對象        Student s1=new Student("linqingxia",27);        Student s2=new Student("wuqilong",27);        Student s3=new Student("wanglihong",34);        Student s4=new Student("zhouxingchi",57);        Student s5=new Student("linqingxia",28);        Student s6=new Student("linqingxia",27);                //添加集合元素        ts.add(s1);        ts.add(s2);        ts.add(s3);        ts.add(s4);        ts.add(s5);        ts.add(s6);                //遍歷集合         for(Student s:ts){            System.out.println(s.getName()+"-----"+s.getAge());        }    }}/** 運行結果:wuqilong-----27linqingxia-----27linqingxia-----28wanglihong-----34zhouxingchi-----57*/

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 通河县| 凤阳县| 宁海县| 龙州县| 西乌珠穆沁旗| 金川县| 屏东市| 乌兰县| 麟游县| 阳朔县| 板桥市| 吉木萨尔县| 京山县| 石嘴山市| 天长市| 东光县| 十堰市| 武山县| 平南县| 垦利县| 锦州市| 东阳市| 文山县| 阳泉市| 奉新县| 宣化县| 苍梧县| 明星| 郸城县| 崇礼县| 宁津县| 彭阳县| 五台县| 南城县| 英吉沙县| 福建省| 且末县| 富裕县| 辰溪县| 连州市| 洮南市|