Java ArrayList常用方法

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]