【问题标题】:Problems with Java Arrays.sort() on sub-arrays -- is this a bug? [duplicate]子数组上的 Java Arrays.sort() 问题——这是一个错误吗? [复制]
【发布时间】:2016-10-26 19:07:24
【问题描述】:

我注意到在子数组上使用 Java Arrays.sort() 时出现了奇怪的行为。这是一个演示程序。这是Java中的错误吗?

package sorted_subsegments;

import java.util.Arrays;

public class sortTest {
    public static void main(String[] args) {
        int A[] = {3, 2, 1};
        System.out.format("A: %s\n", Arrays.toString(A));
        Arrays.sort(A, 0, 1);
        System.out.format(" after sub array sort on A: %s\n", Arrays.toString(A));
        System.out.println("Should be A: [2, 3, 1]");
        Arrays.sort(A);
        System.out.format(" whole array sort on A: %s\n", Arrays.toString(A));
    }
}

【问题讨论】:

  • 结果是?
  • 你有什么问题?
  • 你读过the javadoc吗? "toIndex - 最后一个元素的索引,exclusive,要排序的"
  • Java 已经有 20 多年的历史了,而且这种方法从一开始就存在 - 你可以很确定它没有包含如此明显的错误。
  • @assylias 谢谢。我深夜编程太多,无法正确阅读文档。

标签: java arrays sorting sub-array


【解决方案1】:

来自 Javadoc

fromIndex - 要排序的第一个元素的索引(含)

toIndex - 最后一个元素的索引,排他,要排序

第二个索引 (toIndex) 不包含在要排序的范围内。

所以,在你的例子中

Arrays.sort(A, 0, 1);

您只对数组的元素 [0] 进行排序,它什么都不做。

【讨论】:

    猜你喜欢
    • 2018-01-16
    • 1970-01-01
    • 1970-01-01
    • 2013-12-17
    • 2021-11-08
    • 1970-01-01
    • 2010-09-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多