java_Comparator接口
来源:互联网 发布:洗衣机推荐 知乎 编辑:程序博客网 时间:2024/06/09 22:33
如果一个类已经开发完成,但是在此类建立的初期并没有实现Comparable接口,此时是无法对该类进行排序操作的。为了解决这样的问题,Java定义了另一个比较器接口comparator接口。接口定义如下:
public interface Comparator<T>{ public int compare(to1,to2); boolean equals(Object obj);}
可以发现此类也存在一个compare方法,同样返回0 -1 1;
与之前不同的是,我们需要专门定义一个比价器规则类才能对数组进行排序。
我们来新建一个学生类,此类包含姓名和年龄两个字段,并且以年龄进行排序:
public class Student2 { private String name; private int age; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } @Override public String toString() { return "Student2{" + "name='" + name + '\'' + ", age=" + age + '}'; } @Override public boolean equals(Object obj) { if(this == obj){ return true; } if(!(obj instanceof Student2)){ return false; } Student2 stu = (Student2)obj; if(stu.name.equals(this.getName())&& stu.age == this.age){ return true; }else{ return false; } }}
比较器规则类:
public class StudentComparator implements Comparator<Student2> { @Override public int compare(Student2 o1, Student2 o2) { if(o1.equals(o2)){ return 0; }else if(o1.getAge() <o2.getAge()){ return 1; }else { return -1; } }}
测试:
@Test public void test(){ Student2 stu[] = {new Student2("张三",24), new Student2("李四",22), new Student2("王五",19), new Student2("赵七",20), new Student2("孙八",43)}; Arrays.sort(stu,new StudentComparator()); for (Student2 s :stu){ System.out.println(s); } }
结果:
Student2{name=’孙八’, age=43}
Student2{name=’张三’, age=24}
Student2{name=’李四’, age=22}
Student2{name=’赵七’, age=20}
Student2{name=’王五’, age=19}
可以看到该对象已经按照年龄从大到小排列起来了。
阅读全文
0 0
- java_Comparator接口
- 接口
- 接口
- 接口
- 接口
- 接口
- 接口
- 接口
- 接口
- 接口
- 接口
- 接口
- 接口
- 接口
- 接口
- 接口
- 接口
- 接口
- 目标跟踪:KCF--调通C++代码
- 三次曲线和五次曲线函数
- 使用Tesseract-OCR训练文字识别记录
- AssetBundle 坑来坑去(一)
- 安信可A7模块、DB9公母头及TTL\rs232简介
- java_Comparator接口
- 布局优化必备 Hierarchy Viewer 工具使用
- leetcode Median of Two Sorted Arrays(Java)
- G-CNN详解
- NSA承包商雇员遭FBI逮捕,俄罗斯干预美国大选内部机密文件曝光
- Listview多tab上滑悬浮
- 微信小程序访问豆瓣电影api 400 (Bad Request)错误解决方法
- Unity3d Action的最最最简单的使用
- 美容美白化妆产品类网站织梦模板【带手机端】