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 个元素进行排序。有什么建议?
使用List::sort方法:
objectList.sort(Comparator.comparing(MyObject::getA));
Run Code Online (Sandbox Code Playgroud)
正如@lexicore 在下面提到的,它似乎getA()返回一个数字类型,在这种情况下,如果它返回,int那么最好使用comparingInt而不是comparing上面的,如果它被long使用comparingLong或者它是float/double然后使用comparingDouble 以获得更好的性能。
| 归档时间: |
|
| 查看次数: |
1675 次 |
| 最近记录: |