Java ArrayList sort()
方法 用于对于arraylist元素进行排序。
语法
语法如下:public void sort(Comparator<? super E> c)
参数
- c: 排序方法
返回值
无,直接修改arraylist内部结构。
在排序算法内,返回值1为正序 ,-1为倒序。
内部实现
public void sort(Comparator<? super E> c) {
// 集合大小
final int expectedModCount = modCount;
// 将排序交给Arrays去实现
Arrays.sort((E[]) elementData, 0, size, c);
if (modCount != expectedModCount) {
throw new ConcurrentModificationException();
}
modCount++;
}
例子
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
public class ArrayListSortExample {
public static void main(String[] args) {
int[] data = {1,7,5,3,9};
// 构建成一个集合
List<Integer> list = new ArrayList<>();
for (int i = 0; i < data.length; i++) {
list.add(data[i]);
}
// 设定自己的比较方式
// 1顺序 -1倒序
list.sort(new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
int i = o1 > o2 ? 1 : -1;
//System.out.println("开始比较 [o1] - " + o1 + "\t [o2] - " + o2);
return i;
}
});
// 打印结果
System.out.println(list);
}
}
输出:
[1, 3, 5, 7, 9]