Mai*_*fer 1 java sorting iterable
我有一个实现 Iterable 的自定义列表(不是集合!!)。我没有实现 List ,因为这会带来太多我不想要的方法,而且我不需要。
关于我的 CustomList 的更多信息:
所以这是我的班级:
public class CustomList implements Iterable<MyThing> {
private final CustomList sublist;
private final MyThing thing;
// getters and other methods
}
Run Code Online (Sandbox Code Playgroud)
我有一个
Comparator<MyThing>
Run Code Online (Sandbox Code Playgroud)
我的事情:
public class MyThing {
private final IntArrayList values;
// more members and methods
}
Run Code Online (Sandbox Code Playgroud)
我想获得一个排序副本作为我的 CustomLists 之一的 CustomList(如果我不需要我的比较器,那不会是一个问题,但到目前为止我就是这样解决的)
到目前为止我所做的是:
这工作正常,但我想知道是否有另一种(也许更优雅的方式)来实现我的目标。
核心 Java 库不公开与Iterable.
内置排序复制元素到临时数组。(ArrayList通过将其内部数组传递给 sort 函数来优化它。)我建议对您当前的方法进行的一个小改进是在 aObject[]而不是 a之间来回复制您的元素List。然后使用Arrays.sort()代替Collections.sort()。这节省了创建一个List没有真正使用的对象。
如果要对自定义集合执行就地排序,则可以自己实现排序算法。这并不是很难,但是更多的代码意味着更多的错误、更多的维护,并且您不会从与 JRE 捆绑的改进中受益(例如从“MergeSort”移动到“TimSort”)。只有你可以说这个好处是否值得。
| 归档时间: |
|
| 查看次数: |
12013 次 |
| 最近记录: |