import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
public class CollectionsDemo {
public static void main(String[] args) {
/**
* Collections.sort方法实现排序
* Collections是集合的工具类,它提供了很多便于我们操作集合的方法
* 其中就有用于集合排序的sort方法
* -void sort(List<T> list):该方法的作用是对给定的集合元素进行自然排序
*
* 在使用Collecions的sort排序的集合元素都必须是Comparable接口的实现类,该接口表示其子类是可比较的
* 因为实现该接口必须重写抽象方法:-int compareTo(T t)
*
* 自然排序(Collections.sort(list)):list集合中的元素必须实现Comparable接口,重写compareTo方法,一般用于java对提供的API对象进行排序(String,Date,Integer等)
* 自定义排序(Collections.sort(list,比较器));对list集合中的对象没有限制,必须提供“比较器”对象,sort会利用比较器进行比较大小进行排序,用途广泛:可以进行任意数据比较
*/
List<String> list=
new ArrayList();
list.add(
"Aange");
list.add(
"erge");
list.add(
"dage");
Collections.sort(list);
System.out.println(list);
int n=
"Aange".compareTo(
"dage");
System.out.println(n);
List<Cat> list1=
new ArrayList<Cat>();
list1.add(
new Cat(
9));
list1.add(
new Cat(
15));
list1.add(
new Cat(
30));
list1.add(
new Cat(
13));
Collections.sort(list1,
new ByAge());
/**输出比较结果**/
for(
int i=
0;i<list1.size();i++) {
System.out.println(list1.get(i).age);
}
}
}
/**
* 自定义比较器 Comparator
*
*/
class ByAge implements Comparator<Cat> {
@Override
public int compare(Cat o1, Cat o2) {
return o1.age-o2.age;
}
}
class Cat implements Comparable<Cat>{
int age;
public Cat(
int age) {
super();
this.age = age;
}
@Override
public int compareTo(Cat o) {
return this.age-o.age;
}
}