import部分:
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
代码:
public static void main(String[] args) {
// TODO Auto-generated method stub
sort_test();
}
public static void sort_test() {
List<String> testList = new ArrayList<>();
testList.add("C");
testList.add("B");
testList.add("A");
testList.add("a");
testList.add("4");
testList.add("D");
// ArrayList本身是有序的,即按照插入数据的先后顺序排序
System.out.println("-------------------------排序前-------------------------");
for (int i = 0; i < testList.size(); i++) {
System.out.println(testList.get(i));
}
// 自定义compare比较方法
Collections.sort(testList, new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
/*
* *按ASCII表排序
* *可以看到return有个? :表达式。
* *解释一下
* *o1.compareToIgnoreCase(o2) == 0是先看看不区分大小写对比出来的值是否等于0,
* *如果=0,返回-o1.compareTo(o2),前面加-是让小写在大写前面
* *如果不等于0,返回o1.compareToIgnoreCase(o2)
*/
return (o1.compareToIgnoreCase(o2) == 0 ? -o1.compareTo(o2) : o1.compareToIgnoreCase(o2));
}
});
System.out.println("-------------------------排序后-------------------------");
for (int i = 0; i < testList.size(); i++) {
System.out.println(testList.get(i));
}
}
输出结果:
-------------------------排序前-------------------------
C
B
A
a
4
D
-------------------------排序后-------------------------
4
a
A
B
C
D