【问题标题】:What algorithm a RowSorter use for sorting a JTable rows? [closed]RowSorter 使用什么算法对 JTable 行进行排序? [关闭]
【发布时间】:2023-03-08 15:21:01
【问题描述】:

有许多排序算法,例如冒泡排序、插入排序、归并排序等。在对 JTable 的行进行排序时使用什么算法?有人请。

【问题讨论】:

  • @Sarz 有一个类 TableRowSorter 可以添加到 JTable 中,您无需执行任何其他操作,只需单击表头即可对表数据进行排序。告诉我在这个默认场景中使用什么 alogo???
  • TableRowSorter 使用比较器进行排序,尝试搜索或读取herehere
  • @Sarz- 请解释“如果您以某种方式排列排序的数据,它将被排序”
  • 对不起,下面答案中的链接没有用

标签: swing algorithm sorting jtable


【解决方案1】:

Dual-Pivot Quicksort 自 Java 1.7.0 起已被 Arrays.sort(...) 使用:

//@see javax.swing.DefaultRowSorter#sort()
private Row[] viewToModel;
public void sort() {
  //...
  // sort them
  Arrays.sort(viewToModel);

编辑

对不起,我错过了,Arrays.sort(int[]) 没有使用:

public static void sort(int[] a) {
    DualPivotQuicksort.sort(a, 0, a.length - 1, null, 0, 0);
}

正确:

public static void sort(Object[] a) {
    if (LegacyMergeSort.userRequested)
        legacyMergeSort(a);
    else
        ComparableTimSort.sort(a, 0, a.length, null, 0, 0);
}

【讨论】:

  • 感谢 aterai,这正是我想要的。
  • @Nadeem 我误解了。请直接查看java.util.Arrays.java源代码...
猜你喜欢
  • 1970-01-01
  • 2023-03-30
  • 2014-09-05
  • 1970-01-01
  • 2014-08-16
  • 1970-01-01
  • 1970-01-01
  • 2010-12-16
  • 2018-04-29
相关资源
最近更新 更多