对 Java ArrayList 的一部分进行排序

问题描述 投票:0回答:2

仅对 ArrayList 的一部分进行排序的最有效方法是什么? 假设包含 10 个元素的 Arraylist 中索引 0 到 3 的所有元素。

Java中有可用的库函数吗?

除了对整个列表进行排序的

Collections.sort(list)

编写高度优化的自定义排序函数需要一些工作。

java sorting arraylist
2个回答
64
投票

在 Java 8+ 中:

list.subList(0,3).sort() ;

在早期的 Java 中:

Collections.sort(list.subList(0,3));

注意: 这里的“3”被排除在排序之外。

引用文档

公共列表 subList(int fromIndex, int toIndex)

返回此列表中指定的部分之间的视图 fromIndex(包含)和 toIndex(排除)。


6
投票

使用subList

中的
AbstractList
[继承自
ArrayList
]方法。然后在该子列表上使用
Collections.sort()
。也就是说,如果编写高度优化的自定义排序函数确实是一项艰苦的工作

© www.soinside.com 2019 - 2024. All rights reserved.