Java内置排序算法
数据模型
public class Element implements Comparable<Element> {
/**
* 若e1.compareTo(e2) > 0,则e1 > e2
* 若e1.compareTo(e2) = 0,则e1 = e2
* 若e1.compareTo(e2) < 0,则e1 < e2
*/
@Override
public int compareTo(Element e) {
// TODO Auto-generated method stub
return 0;
}
}
import java.util.Comparator;
public class Comparators implements Comparator<Element> {
/**
* 若compareTo(e1, e2) > 0,则e1 > e2
* 若compareTo(e1, e2) = 0,则e1 = e2
* 若compareTo(e1, e2) < 0,则e1 < e2
*/
@Override
public int compare(Element e1, Element e2) {
// TODO Auto-generated method stub
return 0;
}
}
利用Comparable接口实现排序
-
Arrays.sort(T[] a);
- 适用于数组的排序。
- 数组中的元素可以是基本数据类型的数据,也可以是任何实现了
Comparable<T>
接口的类T
。
-
Collections.sort(List<T> list);
- 适用于List集合的排序。
- List集合中的元素可以是任何实现了
Comparable<T>
接口的类T
(不允许是基本数据类型的数据)。
利用Comparator接口实现排序
-
Arrays.sort(T[] a, Comparator<T> c);
- 适用于数组的排序。
- 数组中的元素可以是任何的类
T
(不允许是基本数据类型的数据),但必须另外有一个比较器类来实现Comparator<T>
接口。
-
Collections.sort(List<T> list, Comparator<T> c);
- 适用于List集合的排序。
- List集合中的元素可以是任何的类
T
(不允许是基本数据类型的数据),但必须另外有一个比较器类来实现Comparator<T>
接口。