127_容器_排序容器_TreeSet与TreeMap
来源:互联网 发布:淘宝快递模板下载 编辑:程序博客网 时间:2024/05/17 08:38
- 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); }}
阅读全文
0 0
- 127_容器_排序容器_TreeSet与TreeMap
- 引用类型_排序容器_TreeSet与TreeMap
- 排序容器_TreeSet与TreeMapJAVA127
- 126_容器_自定义数据排序
- 122-123_容器_排序_冒泡排序
- Java基础_容器
- 泛型(1)_容器
- 学习笔记_容器
- 黑马程序员_容器
- 03_容器
- 133_容器_容器的同步控制与只读设置
- OC5_容器类型的快速枚举_数组排序
- 100_容器_List_ArrayList_LinkedList_Vector用法_详解
- 111_容器_自定义实现HashSet
- 142_容器_重点总结
- 121_容器_HashMap_经典存储_经典分拣思路_与面向对象组合解题
- 129_容器_Queue与Deque_队列_模拟银行业务_自定义堆栈
- java基础知识_容器类
- 算法入门经典:大理石在哪儿
- 126_容器_自定义数据排序
- Linux实施抢占补丁的研究与实践
- 有道词典在谷歌Chrome浏览器中无法取词的解决方法
- HDU-3954:Level up(特殊的线段树成段更新)
- 127_容器_排序容器_TreeSet与TreeMap
- 关于JSON与ajax操作
- PHP后台支付的开发:微信支付和支付宝支付
- web components简介
- Linux基础
- 128_容器_工具类Collections方法详解_洗牌
- C# SQL Server的封装(SQLDataAdapter等)之二(共二)
- Android View绘制和显示原理简介
- Protocol Buffer C++应用实例