java积累(一)------后端---Comparator比较器的用法(1)
- UID
- 1066743
|
java积累(一)------后端---Comparator比较器的用法(1)
对数组或者List列表,或者Map(非hash)等排序是我们经常使用的一种处理数据的手段。Comparator接口是java中很方便的一个接口。
我们只需要重写compare方法即可实现排序。
int compare(Object o1, Object o2) 返回一个基本类型的整型
如果要按照升序排序,
则o1 小于o2,返回-1(负数),相等返回0,01大于02返回1(正数)
如果要按照降序排序
则o1 小于o2,返回1(正数),相等返回0,01大于02返回-1(负数)
使用步骤
新建比较器并重写compare方法
Comparator<User> comp=new Comparator<User>(){
//升序
public int compare(User o1,User o2){
if(o1.getAge()>o2.getAge()){
return 1;
}else if(o1.getAge()==o2.getAge()){
return 0;
}else{
return -1;
}
}
};
也可以新建内部类或者外部类如下:
public class UserAgeComparator implements Comparator<User> {
//升序
public int compare(User o1,User o2){
if(o1.getAge()>o2.getAge()){
return 1;
}else if(o1.getAge()==o2.getAge()){
return 0;
}else{
return -1;
}
}
}
使用比较器
Collections.sort(users,comp);
Collections.reverse(users);//反转排序
如果是类的的话需要先实例化再使用
UserAgeCompartor mc = new UserAgeCompartor ();
Collections.sort(list, mc); |
|
|
|
|
|