如何更快地对 ArrayList 进行排序?

MAR*_*ELO 2 java sorting performance arraylist

我正在做一个类项目,我需要根据它们的 int 属性的值对自定义对象的 ArrayLists 进行排序。

我目前正在使用这样的东西:

public static void Sort(ArrayList <MyObject> objectList){

    for (int i = 0; i < list.size()-1; i++){

        for (int j = 0; j < list.size()-1; j++){

            if (objectList.get(j).getA() > objectList.get(j+1).getA()){

                Collections.swap(objectList, j, j+1);
            }
        }    
    }    
}
Run Code Online (Sandbox Code Playgroud)

如果 ArrayList 的元素少于 10^4,则程序运行良好。但是如果我尝试对 10^5 个元素进行排序需要几分钟,我需要对 10^6 个元素进行排序。有什么建议?

Ous*_* D. 5

使用List::sort方法:

objectList.sort(Comparator.comparing(MyObject::getA));
Run Code Online (Sandbox Code Playgroud)

正如@lexicore 在下面提到的,它似乎getA()返回一个数字类型,在这种情况下,如果它返回,int那么最好使用comparingInt而不是comparing上面的,如果它被long使用comparingLong或者它是float/double然后使用comparingDouble 以获得更好的性能。