gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 06:44:31 25 4
gpt4 key购买 nike

我正在做一个类项目,我需要根据自定义对象的 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);
}
}
}
}

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

最佳答案

使用 List::sort 方法:

objectList.sort(Comparator.comparing(MyObject::getA));

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

关于java - 如何更快地对 ArrayList 进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50311350/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com