TreeSet的第二种排序方式:比较器
来源:互联网 发布:黑暗之光魔翼升阶数据 编辑:程序博客网 时间:2024/06/05 17:16
/*TreeSet的第二种排序方式:当元素自身不具备比较性时,或者具备的比较性不是所需要的这时就需要让集合自身具备比较性。在集合初始化时,就有了比较方式。定义了比较器,将比较器对象作为参数传递给TreeSet集合的构造函数。TreeSet(Comparator<? super E> comparator) 构造一个新的空 TreeSet,它根据指定比较器进行排序。当两种排序都存在时,以比较器为主。如何实现比较器:定义一个类,实现Comparator接口,覆盖compare方法*/import java.util.*;class SetDemo2{public static void main(String[] args) {//指定比较器TreeSet ts = new TreeSet(new MyCompare());ts.add(new Student("sh3",23));ts.add(new Student("sh4",24));ts.add(new Student("hh1",21));ts.add(new Student("dh2",22));ts.add(new Student("ah5",22));Iterator it = ts.iterator();while(it.hasNext()){Student sd = (Student)it.next();System.out.println("name:"+sd.getName()+" age:"+sd.getAge());}}}//自定义的比较器,按姓名排序class MyCompare implements Comparator{public int compare(Object o1,Object o2){Student s1 = (Student)o1;Student s2 = (Student)o2;return s1.getName().compareTo(s2.getName());}}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){if(!(obj instanceof Student)){throw new RuntimeException("对象转换不成功!");}Student s = (Student)obj;if(this.age>s.age)return 1;else if(this.age == s.age){//如果年龄相同,则再比较姓名return this.name.compareTo(s.name);}elsereturn -1;}}
0 0
- TreeSet的第二种排序方式:比较器
- TreeSet的第二种排序方式
- (68)TreeSet练习:两种排序方式:自然排序(实现comparable接口)、比较器
- TreeSet的两种排序方式
- TreeSet的两种排序方式
- TreeSet的两种排序方式
- TreeSet的两种排序方式
- TreeSet的两种排序方式
- TreeSet的两种排序方式
- Treeset排序几种方式
- 【TreeSet】自然排序与比较器排序
- TreeSet集合存放自定义类型的对象,可以使用比较器,实现Comparable接口自己设置排序方式
- 黑马程序员------TreeSet的自然排序与比较器
- TreeSet按照字符串的长度排序(用比较器)
- TreeSet集合的一个比较器排序去重案例
- 黑马程序员,TreeSet的二种排序方式
- 黑马程序员 TreeSet排序的两种实现方式
- java集合TreeSet的两种排序方式
- Google工程师:教你用树莓派+Arduino+TensorFlow搭建图像识别小车
- mac下给php编译openssl扩展报错 fatal error: 'openssl/evp.h' file not found
- Appium 解决中文输入问题
- Android
- bzoj 1188: [HNOI2007]分裂游戏 sg函数
- TreeSet的第二种排序方式:比较器
- Android Gilde教程
- tomcat+https协议的接口编写及客户端访问
- 安装cocoapods时出现错误 Operation not permitted
- 自定义排序,按字符串长度排序
- 机器学习实战中如何加载kNN模块
- Libsvm的安装使用--MATLAB总结
- 学习一下MVP模式
- linux下进度条