package com.itheima_03;
//Compartor返回1,-1,0。
// 1是前者权重大,-1是后者权重大,0表示二者权重相等。(o1表示前者,o2表示后者)
//最后按照权重由小到大进行排序
//故想要升序就要让大的权重大,想要降序就要让小的权重大
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
public class CompareTest {
public static void main(String[] args) {
List<Integer> list = new ArrayList<Integer>();
list.add(3);
list.add(1);
list.add(5);
list.add(2);
list.add(0);
list.add(6);
list.add(7);
//下面是升序排列的
Comparator<Integer> comparator1 = new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
if (o1 > o2) {
return 1; //返回1表示o1权重大于o2权重,故o1排在o2后面,即升序
} else if (o1 < o2) {
return -1; //返回-1表示o1权重小于o2权重,故o2排在o1后面,即升序
}
return 0;
}
};
//下面是降序排列的
Comparator<Integer> comparator2 = new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
if (o1 > o2) {
return -1; //返回-1表示o1权重小于o2权重,故o2排在o1后面,即降序
} else if (o1 < o2) {
return 1; //返回1表示o1权重大于o2权重,故o1排在o2后面,即降序
}
return 0;
}
};
Collections.sort(list, comparator1);
System.out.println(list);
}
}
关于Compartor接口中compare方法的升序,降序
于 2020-04-04 19:06:47 首次发布