Java面向对象_常用类库api——对象比较器
2024-08-26 22:42:05
概念:对两个或多个数据项进行比较,以确定他们是否相等,或确定他们之间的大小关系及排列顺序成为比较。
1.Comparable接口:
此接口强行对实现它的每个类的对象进行整体排序。这种排序被称为类的自然排序,类的compareTo方法被称为它的自然比较方法。
public class ComparableDemo { /**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Cat[] cats={new Cat("tom",4),new Cat("jack",3),new Cat("xiaohua",5)};
Arrays.sort(cats);
for (Cat cat : cats) {
System.out.println(cat);
}
} }
public class Cat implements Comparable<Cat> {
private String name;
private int age; public Cat() {
super();
// TODO Auto-generated constructor stub
}
public Cat(String name, int age) {
super();
this.name = name;
this.age = 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 "Cat [name=" + name + ", age=" + age + "]";
}
//通过此方法实现对象比较
@Override
public int compareTo(Cat o) {
// TODO Auto-generated method stub
if(this.age <o.age ){//从小到大排序
return -1;
}else if(this.age >o.age ){
return 1;
}else{
return 0;
}
} }
2.Comparator接口:(不改变类,再写一个比较类)
强行对某个对象collection进行整体排序的比较。
public class ComparableDemo { /**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Dog[] dogs={new Dog("tom",4),new Dog("jack",3),new Dog("xiaohua",5)};
Arrays.sort(dogs, new DogComparator());
for (Dog dog : dogs) {
System.out.println(dog);
}
} }
public class Dog {
private String name;
private int age;
public Dog() {
super();
// TODO Auto-generated constructor stub
}
public Dog(String name, int age) {
super();
this.name = name;
this.age = 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 "Dog [name=" + name + ", age=" + age + "]";
}
}
import java.util.Comparator; public class DogComparator implements Comparator<Dog>{ @Override
public int compare(Dog o1, Dog o2) {
// TODO Auto-generated method stub
if(o1.getAge()<o2.getAge()){
return -1;
}else if(o1.getAge()>o2.getAge()){
return 1;
}else{
return 0;
}
} }
最新文章
- JFinal - Log 日志
- 九、Android学习第八天——广播机制与WIFI网络操作(转)
- android 串口调试
- android ANR
- JavaScript DOM高级程序设计2.1创建可重用的对象--我要坚持到底!
- windows的路由例子
- Linux shell 的 test 命令用法详解
- C---通过指针访问数组
- Linq skip skipwhile take takewhile
- oracle登陆,在监听服务启动了的情况下,登陆用户还是报错未启动监听服务的错误(刚开始装oracle是能登陆的,重启之后装了plsql)
- 小白的Python之路 day1 数据类型,数据运算
- hdu 4031 attack 线段树区间更新
- java网络爬虫基础学习(一)
- 云计算三种服务模式——IaaS、PaaS和SaaS
- 在IDEA中spring程序可以正常运行,但IDE报错Could not autowire.
- Oracle 的常用概念
- 创建一个简单的WCF程序
- gitlab操作
- linux用户和组
- UCOSii和Linux的区别和联系