【问题标题】:Sorting a sub-List, Java [duplicate]对子列表进行排序,Java [重复]
【发布时间】:2018-02-04 20:22:31
【问题描述】:

更新:我知道与Sorting a part of Java ArrayList 的相似之处。这个问题专门询问List 接口而不是ArrayList 类,因此更广泛。我认为这值得一个单独的问题。

在 Java 中,Arrays 类有一个静态方法,允许您对数组中的子数组进行排序:

public static <T> void sort(
    T[] a,
    int fromIndex,
    int toIndex,
    Comparator<? super T> c)

我想以类似的方式对List 进行排序,即我希望能够将fromIndextoIndex 参数传递给List 的排序方法。但是,documentation for List 表示其排序方法只接受Comparator。除了将List 转换为Array 并调用接受一系列元素的Arrays.sort 方法之外,还有哪些好方法可以在Java 中对List 元素的子部分进行排序?

【问题讨论】:

标签: java arrays sorting


【解决方案1】:

简单——使用subList

data.subList(start, end).sort(Comparator.naturalOrder())

【讨论】:

  • 应该更频繁地这样做 Boris。您总是以 cmets 的形式发布答案 ;-)。
  • 我知道,我知道@Aominè - 但写答案似乎总是比仅仅将某人引向正确的方向要付出更多的努力......
  • 同样,这就是您从列表开头以外的其他位置开始执行indexOf 之类的操作的方式。
  • @AndyTurner 我一直喜欢 List.subList(start, end).clear() 作为一个把戏。
  • Pedantic: 为了匹配 Arrays.sort() 的参数,它实际上是:a.subList(fromIndex, toIndex).sort(c)
猜你喜欢
  • 2011-07-07
  • 2014-12-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-09
  • 2015-11-14
  • 2014-10-27
相关资源
最近更新 更多