java - 生成随机数并在Java中对它们进行排序

标签 java sorting random linked-list

我的目标是生成 0 到 100 之间的随机数并将它们添加到链表对象中,然后对元素进行排序。

到目前为止,这是我的代码。当我想显示已排序的元素时遇到问题。

我得到的错误:线程“main”中的异常 java.util.IllegalFormatConversionException: d != java.util.Arrays$ArrayList

有人可以阐明这个问题吗?谢谢你

package com.LinkedLists;

import java.util.Arrays;
import java.util.Collection;
import java.util.HashSet;
import java.util.List;
import java.util.LinkedList;
import java.util.Random;
import java.util.Set;

public class InsertRandomElements {

    public static void main(String[] args) {

        // Create a random number object from 0 to 100.
        // Create an array object.
        Random r = new Random();
        int[] random = new int[100];

        // Insert random numbers into the array
        for (int i = 0; i < random.length; i++) {
            random[i] = r.nextInt(100) + 1;
        }

        // Printing out the unsorted array
        for (int i = 0; i < random.length; i++) {
            System.out.println(random[i]);
        }

        List<int[]> randomList = Arrays.asList(random);

        // Call the method in here.
        sortElements(randomList);

    }

    // Sort the elements
    private static void sortElements(Collection<int[]> values) {

        Set<int[]> set = new HashSet<int[]>(values);

        for (int[] is : set) {
            System.out.printf("Sorted Elements: %d ", values);
        }

        System.out.println();
    }

    // Calculate Sum of the elements

    // Calculate floating point average of the elements.

}

最佳答案

你需要一个List<Integer>而不是 List<int[]> .从原始数组转换为整数列表不是一次调用操作,您实际上必须遍历原始数组并一一添加到列表中。我不推荐这样做,尤其是因为一开始就没有理由使用数组。作为引用,您需要这个:

final List<Integer> randomList = new LinkedList<>();
for (int i : random) randomList.add(i);

当你改变它时,这将起作用:

System.out.printf("Sorted Elements: %s ", values);

但是,使用 Arrays.sort(myArray) 对数组本身进行排序会简单得多然后使用

打印
System.out.println(Arrays.toString(myArray));

另一方面,如果您使用 List<Integer>从一开始,它看起来像这样:

final Random rnd = new Random();
final List<Integer> values = new ArrayList<>();
for (int i = 0; i < 100; i++) values.add(rnd.nextInt());
Collections.sort(values);
System.out.println("Sorted Elements: " + values);

关于java - 生成随机数并在Java中对它们进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13290468/

相关文章:

c++ - 确定性随机数生成器为同一种子提供不同的随机数

r - 根据样本统计量从二项式分布中随机抽取

random - 生成易于内存的随机标识符

java - 为什么 Maven 不运行测试用例?

java - Java中如何以不区分大小写的方式检查一个字符串是否包含另一个字符串?

python - 嵌套在 Python 列表中的元组的任意排序

php - 数组排序,不是简单的排序

Java + Mongo +Morphia - 在 mongo 数组中查找正则表达式

java - 使用数组在特定行预订电影票

c# - 结构比 SortedSet 更快地添加 1-by-1,然后从末尾访问少量项目