TreeSet自定义比较器实现Comparator接口,覆盖Compare方法
来源:互联网 发布:2016网络大电影市场 编辑:程序博客网 时间:2024/05/18 01:36
import java.util.*;/*TreeSet自定义比较器实现Comparator接口,覆盖Compare方法当元素自身不具备比较性,或者具备的比较性不是所需要的。这是需要让容器自身具备比较性。定义了比较器,将比较器对象作为参数传递给TreeSet的构造函数当两种排序都存在时,以比较器为主定义一个类,实现Comparator接口,覆盖compare方法。以return 0 判断元素是否相同*/class Student implements Comparable//该接口强制让学生具备比较性{ private String name; private int age; student(String name,int age) { this.name = name; this.age = age; } public int compareTo(Object obj)//覆盖接口里的compareTo方法,用Object 接收参数,不能声明异常 { if(!(obj instanceof Student))//先判断obj是Student类的实例 throw new RuntimeException("不是学生对象")//抛出运行时异常 Student s = (Student)obj;//强转s //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);//调用者 调用String类的comparTo方法 按字典顺序比较 (传入参数) } if (this.age<s.age) return -1; } public String getName() { return name; } public String getAge() { return Age; } }class TreeSetDemo2{ public static void main(String[] args) { TreeSet ts = new TressSet(new MyCompare());//传进比较器 ts.add(new Student("lisi02",22)); ts.add(new Student("lisi007",20)); ts.add(new Student("lisi09",19)); ts.add(new Student("lisi01",40)); Iterator it = ts.iterator(); while(it.hasNext()) { System.out.println(it.next()); } }}class MyCompare implements Comparator//定义比较器{ public int compare(Object o1,Object o2) { Student s1 = (Student)o1; Student s2 = (Student)o2; int num = s1.get.getName().compareTo(s2.getName()); if(num == 0) { new Integer(s1.getAge()).compareTo(new Integer(s2.getAge())); /* if(s1.getAge()>s2.getAge()) return 1; if(s1.getAge()==s2.getAge()) return 0; if(s1.getAge()<s2.getAge()) return -1; */ } return num; }}
0 0
- TreeSet自定义比较器实现Comparator接口,覆盖Compare方法
- set集合 HashSet: TreeSet实现Comparable接口,覆盖compareTo方法。 类实现Comparator接口,覆盖compare方法。
- Java编程之TreeSet排序两种解决方法(1)元素自身具备比较功能,元素需要实现Comparable接口覆盖compare(2)创建根据自定义Person类的name进行排序的Comparator
- 黑马程序员——TreeSet实现按字符串长度排序,复写Comparator()接口的compare()方法
- TreeSet 使用 Comparator 比较器
- java se TreeSet自己实现Comparator接口
- 实现Comparable接口和Comparator接口,并重写compareTo方法和compare方法
- JAVA外部比较器:实现Comparator接口
- 通过枚举控制比较TreeSet内容排序(实现接口comparator);随机生成一个汉字
- 黑马程序员——TreeSet实现Comparator接口对自定义类排序
- 集合框架--TreeSet集合Comparator比较器
- 通过Comparator接口实现比较
- Java Comparator (比较器接口 Comparator)
- Java Comparator和Comparable接口的compare方法
- TreeSet 的排序非自然数需要实现Comparator接口
- 实现Comparator 比较器
- 对象比较器,Comparator接口
- Java比较器Comparator接口
- 比较运算符
- Linux中线程与CPU核的绑定
- CCCC练习题的题解-给新人看的
- sparkStreaming_电商案例
- Hydra工具的使用
- TreeSet自定义比较器实现Comparator接口,覆盖Compare方法
- JavaScript Tab切换
- 四、数据结构与算法--其他排序
- iOS视图控制对象生命周期
- 论旧时豪门与寒门
- MxNet教程:使用一台机器训练1400万张图片
- CodeForces 385C Bear and Prime Numbers
- 【HDU】5492 Find a path(2015 ACM/ICPC Asia Regional Hefei Online)
- java spring mvc视频教程及项目源码之spring mvc入门到精通