组合和随机化两个java数组

时间:2017-01-05 21:02:37

标签: java arrays

我找不到作业标签,但这是家庭作业。

我希望为每个字母随机分配一个值,同时用逗号分隔它们,并且必须在答案中使用数组。

这是我到目前为止所做的尝试,但还有一段距离。

    double[] numbers = {5,4,6.2,1.5};
    char[] letters = {'a','v','c',d'};

    int temp = (int) (Math.random()*numbers.length);
    int woo = (int) (Math.random()*letters.length);


    for (int i = 0; i < letters.length; i++) {
        for (int j = 0; j < numbers.length; j++){
            System.out.print(letters[woo]);
            System.out.print(numbers[temp]);
            System.out.print(',');
        }
    }

我希望得到类似的输出:d4,c1.5,v6.2,a5

任何帮助将不胜感激

1 个答案:

答案 0 :(得分:0)

您可以使用Collections.shuffle(或原始数组的custom implementation)对数组进行混洗,然后并行迭代数组。

Double[] numbers = { 5.0, 4.0, 6.2, 1.5 };
Character[] letters = { 'a', 'v', 'c', 'd' };

Collections.shuffle(Arrays.asList(numbers));
Collections.shuffle(Arrays.asList(letters));

StringJoiner joiner = new StringJoiner(", "); // from Java 8
int length = Math.min(numbers.length, letters.length);
for (int i = 0; i < length; i++) {
    joiner.add(letters[i].toString() + numbers[i]);
}
System.out.println(joiner.toString());

Ideone Demo