Java array.sort(arr) 输出 0 而不是 arr

标签 java arrays sorting array-algorithms

我在随机 int 生成的数组上使用 Java array.sort。

结果应该是一个排序数组,但我得到的是 0 和一些随机生成的数字。

这是我的代码:

public class test {
    public static void main(String[] args) {
        int[] list = new int[10];
        Random rand = new Random(); 
        for (int i = 0; i < list.length; i++) {
            list[i] = rand.nextInt(100);
            Arrays.sort(list); 
            System.out.println(list[i]);
        }  
    }
}

预期的输出应该是一个由 10 个随机整数组成的排序数组,但总是将前 5 个数字设为 0。

有人能帮忙吗?

最佳答案

看起来您在每次迭代时都对整个数组进行排序。设置值后尝试对数组进行排序和打印。

public class test {
    public static void main(String[] args) {
        int[] list = new int[10];
        Random rand = new Random(); 
        for (int i = 0; i < list.length; i++) {
            list[i] = rand.nextInt(100);
        }  

        Arrays.sort(list); 

        for (int i = 0; i < list.length; i++) {
            System.out.println(list[i]);
        } 
    }
}

如果您调试应用程序,您会明白为什么每次都得到 5 个 0。

int[] list = new int[10]; 产生一个 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0] 的数组,然后打印你对数组进行排序。因此,前 5 个(list[0]list[1]list[2]...)将是 0,而 list[6] list[7].. 将是 rand.nextInt(100)

关于Java array.sort(arr) 输出 0 而不是 arr,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52249885/

相关文章:

java - 子类属性未映射到 JAXB 中的父类属性

java - 用于提取 Maven 构建日志中的错误的正则表达式

将数组的地址转换为其他数据类型

algorithm - 迭代排序算法的运行时间分析

python - 为给定的键函数生成所有可能的等价排序

javascript - 如何重载比较器以使用 UTF-8 和不同的语言环境进行排序

Java 流与迭代器

java - 通用可比较内部类

javascript - 在 Javascript 中将 Array 对象转换为 Json

c - c语言如何在动态数组中添加/删除字符串