127_容器_排序容器_TreeSet与TreeMap

来源:互联网 发布:淘宝快递模板下载 编辑:程序博客网 时间:2024/05/17 08:38

5

  • Person.java
package collection.sort.TreeSet_TreeMap;public class Person {    private final String name;//名称    private final int handsome;//帅气指数    public Person() {        name =null;        handsome =0;    }    public Person(String name, int handsome) {        super();        this.name = name;        this.handsome = handsome;    }    public String getName() {        return name;    }    public int getHandsome() {        return handsome;    }    @Override    public String toString() {        return "姓名:"+this.name+",帅气指数:"+this.handsome+"\n";    }}
  • PersonImpl.java
package collection.sort.TreeSet_TreeMap;import java.util.Set;import java.util.TreeMap;import java.util.TreeSet;/** * 提供了 解耦的方式:业务排序类 */public class PersonImpl {    public static void main(String[] args) {        Person p1 =new Person("您",100);        Person p2 =new Person("刘德华",1000);        Person p3 =new Person("梁朝伟",1200);        Person p4 =new Person("老裴",50);        //依次存放到TreeSet容器中,使用排序的业务类(匿名内部类)        TreeSet<Person> persons =new TreeSet<Person>(                    new java.util.Comparator<Person>(){                        @Override                        public int compare(Person o1, Person o2) {                            return -(o1.getHandsome()-o2.getHandsome());                        }                    }                );        persons.add(p1);        //TreeSet 在添加数据时排序        persons.add(p2);        persons.add(p3);        persons.add(p4);        System.out.println(persons);        /*        //改变数据        p4.setHandsome(100);        p4.setName("您");        //p4 与p1 内容重复 ->设为final,把set方法取消        System.out.println(persons);        */         System.out.println("============================================");        TreeMap<Person,String> map =new TreeMap<Person,String>(new java.util.Comparator<Person>(){            @Override            public int compare(Person o1, Person o2) {                return -(o1.getHandsome()-o2.getHandsome());            }        } );        map.put(p1, "bjsxt");        map.put(p2, "bjsxt");        map.put(p3, "bjsxt");        map.put(p4, "bjsxt");        //查看键        Set<Person> person1 =map.keySet();        System.out.println(person1);    }}
  • Worker.java
package collection.sort.TreeSet_TreeMap;public class Worker implements Comparable<Worker>{    //工种    private String type;    //工资    private double salary;    public Worker() {    }    public Worker(String type, double salary) {        super();        this.type = type;        this.salary = salary;    }    public String getType() {        return type;    }    public void setType(String type) {        this.type = type;    }    public double getSalary() {        return salary;    }    public void setSalary(double salary) {        this.salary = salary;    }    /**     * 按工资升序     */    @Override    public int compareTo(Worker o) {        return this.salary>o.salary?1:( this.salary==o.salary?0:-1);    }    @Override    public String toString() {        return "工种:"+this.type+",工资:"+this.salary+"\n";    }}
  • WorkerImpl.java
package collection.sort.TreeSet_TreeMap;import java.util.TreeSet;/** * 实体类实现Comparable 接口的应用 */public class WorkerImpl {    public static void main(String[] args) {        Worker w1 =new Worker("垃圾回收员",12000);        Worker w2 =new Worker("农民工",8000);        Worker w3 =new Worker("程序猿",5000);        TreeSet<Worker> employees =new TreeSet<Worker>();        employees.add(w1);        employees.add(w2);        employees.add(w3);        System.out.println(employees);    }}
原创粉丝点击