【问题标题】:How to MergeSort objects in ArrayList in JAVA如何在 JAVA 中对 ArrayList 中的对象进行合并排序
【发布时间】:2018-12-04 05:49:08
【问题描述】:

我有 BookData,它有 int id 和 String name

编码是

bookData book = new bookData(1,"Ethan");
bookData book = new bookData(3,"Queen");
bookData book = new bookData(2,"BOB")

ArrayList al = new ArrayList();
al.add(book);

如何使用归并排序对这个 ArrayList 中的 id 进行排序?

我真的需要在不使用 Collections 类和 Arrays 类的情况下完成这项工作

【问题讨论】:

标签: java arraylist mergesort


【解决方案1】:

除了使用正确的语法外,您还可以将List.sort 执行为:

List<BookData> al = new ArrayList<>(); // initialise as you will ; renamed class name as 'BookData'
al.sort(Comparator.comparingInt(bookData::getId));

它自己执行迭代合并排序。从其实施说明 -

这个实现是一个稳定的、自适应的、迭代的归并排序 当输入数组为 部分排序,同时提供传统的性能 输入数组随机排序时的归并排序。如果输入数组 接近排序,实现需要大约 n 比较。临时存储要求从一个小的常数变化 对于几乎排序的输入数组到 n/2 对象引用随机 有序输入数组。

【讨论】:

    猜你喜欢
    • 2017-12-12
    • 2012-04-26
    • 2014-11-09
    • 2011-05-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-17
    相关资源
    最近更新 更多