亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

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

集合框架-TreeSet

2019-11-15 01:14:45
字體:
來源:轉載
供稿:網友
集合框架-TreeSet

TreeSet是Set集合的常見子類.

TreeSet:底層結構是 二叉樹

    元素是有排序的,但是不可以有重復元素.

相關代碼演練:

/*TreeSet ;元素是有序的,但是不可以元素重復.                    */import java.util.*;class TreeSetDemo{    public static void main(String [] args)    {        TreeSet ts = new TreeSet();                ts.add("java01");        ts.add("java03");        ts.add("java02");        ts.add("java04");        ts.add("java04");                Iterator it = ts.iterator();                while(it.hasNext())        {            sop(it.next());        }                ts.remove("java02");        sop(ts);            }    public static void sop(Object obj)    {        System.out.PRintln(obj);    }        }class Student{    private String name;    private int age;        Student(String name,int age)    {        this.name = name;        this.age = age;    }        public String getName()    {        return name;    }    public int getAge()    {        return age;    }}

TreeSet的兩種排序方式:第一種排序方式:(讓元素自身具備比較性)讓該類實現Comparable接口.并且覆寫compareTo方法.這種排序是自然排序.

       保證元素唯一性的依據是: compareTo方法return 0;

代碼演示:

/*        TreeSet存儲自定義對象                (會拋出類型轉換異常ClassCastException) Student類無法轉成Comparable.        因此Student類需要實現Comparable接口.并且覆寫compareTo方法.排序的方式為自然順序.                排序時,當主要條件相同時,還要判斷一下次要條件.                        需求: 按學生的年齡排序.*/import java.util.*;class TreeSetTest{    public static void main(String [] args)    {        TreeSet ts = new TreeSet();                ts.add(new Student("lisi08",19));        ts.add(new Student("lisi02",22));        ts.add(new Student("lisi007",20));        ts.add(new Student("lisi09",19));                        Iterator it = ts.iterator();                while(it.hasNext())        {            Student stu = (Student)it.next();            sop(stu.getName()+"------"+stu.getAge());        }            }    public static void sop(Object obj)    {        System.out.println(obj);    }    }class Student implements Comparable //該接口強制讓學生具備了比較性. (實現了該接口需要覆蓋其compareTo方法){    private String name;    private int age;        Student(String name,int age)    {        this.name = name;        this.age = age;    }    public int compareTo(Object obj)    {                //return 1; //怎么存的怎么取出        //return -1;  //倒取存入的對象        //return 0;        //只會存入第一個存入的對象.                if(!(obj instanceof Student))            throw new RuntimeException("不是學生對象");                    Student s = (Student)obj;                System.out.println(this.name+"---compareTo---"+s.name);                if(this.age>s.age)            return 1;        if(this.age==s.age)        {            return this.name.compareTo(s.name);        }        return -1;            }                public String getName()    {        return name;    }    public int getAge()    {        return age;    }}

第二種排序方式:(元素不具備比較性,或者比較性是所不需要的)此時,讓集合自身具備比較性.在集合一初始化時,就有比較方式.實現方式: 定義一個類,實現comparator接口,并覆寫其中的compare方法.

/*讓容器自身具備比較性,定義一個比較器.將比較器對象傳遞給TreeSet集合的構造函數;思路步驟:定義一個容器讓這個容器實現comparator,并且覆寫其中的compare方法.*/import java.util.*;class TreeSetTest2{    public static void main(String [] args)    {        //TreeSet ts = new TreeSet(); //傳入的不是比較器對象時,調用的是CompareTo方法.                TreeSet ts = new TreeSet(new MyComparator());  //將比較器傳遞給TreeSet的構造函數.                ts.add(new Student("lisi08",19));        ts.add(new Student("lisi02",22));        ts.add(new Student("lisi02",23));        ts.add(new Student("lisi007",20));        ts.add(new Student("lisi09",19));                Iterator it = ts.iterator();                while(it.hasNext())        {            Student stu = (Student)it.next();            sop(stu.getName()+"-----"+stu.getAge());        }                    }        public static void sop(Object obj)    {        System.out.println(obj);    }        }class Student implements Comparable //讓學生類具備了比較性{    private String name;    private int age;    Student(String name,int age)    {        this.name = name;        this.age = age;    }    public String getName()    {        return name;    }    public int getAge()    {        return age;    }        public int compareTo(Object obj)  //覆寫了Comparable中的compareTo方法.    {        if(!(obj instanceof Student))            throw new RuntimeException("bushixueshengduixiang");                Student s = (Student)obj;        if(this.age>s.age)            return 1;        if(this.age==s.age)        {            return this.name.compareTo(s.name);        }        return -1;    }}class MyComparator implements Comparator  //定義一個容器并實現了Comparator接口{    public int compare(Object o1,Object o2)  //覆寫其中的compare方法.    {                if(!(o1 instanceof Student ||o2 instanceof Student))            throw new RuntimeException("對象錯誤.");                Student s1 = (Student)o1;        Student s2 = (Student)o2;                //return s1.getName().compareTo(s2.getName()); //無法存儲到姓名相同年齡不同的對象.                int num = s1.getName().compareTo(s2.getName());  //判斷返回值 (1 0 -1)        if(num==0)   //判斷的名字相同時,在判斷其年齡是否相同.        {            return s1.getAge()-s2.getAge();            /*            if(s1.getAge()>s2.getAge())                return 1;            if(s1.getAge()==s2.getAge())                return 0;            return -1;            */        }                return num;            }}

練習:

按照字符串的長度進行排序.

/*練習:按照字符串長度排序*/import java.util.*;class TreeSetExam{    public static void main(String [] args)    {        TreeSet ts = new TreeSet(new StrLengthCompare());                    ts.add("abcd");        ts.add("cc");        ts.add("cba");        ts.add("a");        ts.add("hahaha");        ts.add("aa");                Iterator it = ts.iterator();                while(it.hasNext())        {            sop(it.next());        }            }        public static void sop(Object obj)    {        System.out.println(obj);    }    }class StrLengthCompare implements Comparator{    public int compare(Object o1,Object o2)    {        if(!(o1 instanceof String || o2 instanceof String))            throw new RuntimeException("ERROR");                String s1 = (String)o1;        String s2 = (String)o2;                //int num = s1.length()-s2.length();        int num = new Integer(s1.length()).compareTo(new Integer(s2.length()));                if(num==0) //判斷長度一樣的字符串的自然排序.        {            return s1.compareTo(s2);        }        return num;    }}

注意:一定要記得先對主要條件進行判斷,在對次要條件進行判斷.避免出現漏存的情況.


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美黑人性视频| 亚洲最大福利视频网站| 国产亚洲精品久久久久久牛牛| 国产在线视频2019最新视频| 国产精品电影久久久久电影网| 中文字幕日韩精品在线观看| 亚洲国产毛片完整版| 日韩黄色高清视频| 亚洲一区二区三区777| 日韩激情av在线播放| 久久久久久久久网站| 欧美在线一区二区三区四| 国产亚洲人成网站在线观看| 日韩电影免费观看在线| 欧美富婆性猛交| 欧美电影免费观看大全| 久久精品国产久精国产一老狼| 国产一级揄自揄精品视频| 日韩av色在线| 国产精品国产三级国产aⅴ浪潮| 国精产品一区一区三区有限在线| 国产精品久久久久久久久久久久久| 久久久精品2019中文字幕神马| 久久99久久久久久久噜噜| 在线视频一区二区| 久久久精品美女| 欧美日韩国产精品一区二区三区四区| 亚洲精品美女久久久久| 92福利视频午夜1000合集在线观看| 精品久久久久久久久久| 日韩女优人人人人射在线视频| 秋霞午夜一区二区| 亚洲精品国精品久久99热| 欧美黄色免费网站| 狠狠躁夜夜躁人人爽天天天天97| 欧美极品欧美精品欧美视频| 欧美日韩中文字幕日韩欧美| 久久久久亚洲精品成人网小说| 久久精品久久久久久国产 免费| 国产精品视频免费在线| 精品无人国产偷自产在线| 国产精品偷伦免费视频观看的| 中文字幕综合在线| 国产精品精品久久久久久| 91国语精品自产拍在线观看性色| 日韩中文在线观看| 欧美激情在线一区| 欧美激情精品久久久久久免费印度| 亚洲欧美国产精品久久久久久久| 亚洲无亚洲人成网站77777| 97成人超碰免| 亚洲第一福利在线观看| 精品一区二区亚洲| 国产精品1区2区在线观看| 九九精品在线播放| 在线观看不卡av| 中文字幕一区日韩电影| 91久久久久久久久久| 成人av资源在线播放| 精品久久久久久亚洲精品| 中文欧美日本在线资源| 98精品在线视频| 国产欧美日韩专区发布| 国产视频久久网| 国产精品久久久久av| 日韩成人激情影院| 57pao国产精品一区| 国产视频精品免费播放| 91精品免费看| 亚洲欧美在线播放| 欧美电影电视剧在线观看| 97视频免费在线看| 久久人人爽人人爽人人片亚洲| 精品久久久久久亚洲国产300| 中文字幕在线观看日韩| 欧美特黄级在线| 日韩美女免费观看| 国产精品激情av电影在线观看| 日韩欧美亚洲综合| 国产日韩欧美另类| 国产手机视频精品| 啊v视频在线一区二区三区| 亚洲欧美日韩视频一区| 美日韩精品视频免费看| 亚洲黄色av网站| 欧美极品在线播放| 91精品在线一区| 宅男66日本亚洲欧美视频| 成人女保姆的销魂服务| 亚洲一区二区三区四区在线播放| 最近2019年中文视频免费在线观看| 亚洲精品美女在线观看| 在线精品高清中文字幕| 亚洲第一福利在线观看| 91精品在线看| 国产精品久久中文| 在线观看欧美www| 俺去了亚洲欧美日韩| 在线观看亚洲区| 国产精品久久久久久久久男| 欧美性20hd另类| 久久久www成人免费精品张筱雨| 精品国产鲁一鲁一区二区张丽| 亚洲国产精品99久久| 精品国产一区二区三区在线观看| 国产又爽又黄的激情精品视频| 亚洲欧美精品suv| 精品亚洲国产成av人片传媒| 国产精品久久久久久久久男| 最近2019免费中文字幕视频三| 亚洲一区美女视频在线观看免费| 78m国产成人精品视频| 欧美成人午夜影院| 国产精品你懂得| 国产综合香蕉五月婷在线| 国产精品国产福利国产秒拍| 欧美高清第一页| 久久久久久久久久久免费精品| 热re99久久精品国产66热| 一区二区欧美久久| 日韩免费在线看| 久久精品中文字幕| 日韩在线观看免费| 日韩h在线观看| 91在线中文字幕| 成人在线观看视频网站| 欧美亚洲国产精品| 亚洲欧美日韩爽爽影院| 亚洲一区二区三区xxx视频| 96pao国产成视频永久免费| 久久国产精品久久国产精品| 国产欧美日韩免费看aⅴ视频| 九九热精品视频国产| 最新国产精品拍自在线播放| 成人精品视频99在线观看免费| 在线观看精品国产视频| 日韩免费在线视频| 欧美怡春院一区二区三区| 国产欧美一区二区白浆黑人| 国产精品色悠悠| 久久99精品视频一区97| 欧美一级电影免费在线观看| 26uuu亚洲国产精品| 欧美国产日韩xxxxx| 茄子视频成人在线| 国产97在线视频| 日韩欧美亚洲一二三区| 一本色道久久综合狠狠躁篇的优点| 国产欧美日韩视频| 欧美日韩一区二区三区| 欧美专区在线播放| 欧美在线性视频| 午夜精品一区二区三区在线播放| 97在线观看视频| 91在线视频免费| 国产精品久久久久久五月尺| 在线观看国产精品91| 国内精品视频一区| 91大神在线播放精品| 久久精品91久久久久久再现| 在线电影欧美日韩一区二区私密| 久久久久久69| 国产亚洲精品一区二区| 久久人人爽人人爽人人片av高清|