java - 如何用随机不可变值填充数组?

标签 java arrays

private void create(){
    byte[] arr = new byte[20];
    new Random().nextBytes(arr);
}

始终生成随机值。

如何创建不可变的随机值?

最佳答案

您需要一个种子值才能返回相同的字节集。

import java.util.Arrays;
import java.util.Random;

public class Main {
    public static void main(String[] args) {
        byte[] arr = new byte[20];

        // Generating a random seed for demo. You can assign a fixed value e.g. 1 to seed.
        int seed = new Random().nextInt(); 

        System.out.println("Going to print the byte array 10 times for the seed " + seed);
        for (int i = 1; i <= 10; i++) {
            create(arr, seed);
            System.out.println(Arrays.toString(arr));
        }
    }

    private static void create(byte[] arr, int seed) {
        Random random = new Random(seed);
        random.nextBytes(arr);
    }
}

示例运行:

Going to print the byte array 10 times for the seed -932843232
[74, 4, -46, -54, 49, 14, 32, -61, 20, -5, 1, 49, -64, -98, 68, 2, -74, 56, 28, -31]
[74, 4, -46, -54, 49, 14, 32, -61, 20, -5, 1, 49, -64, -98, 68, 2, -74, 56, 28, -31]
[74, 4, -46, -54, 49, 14, 32, -61, 20, -5, 1, 49, -64, -98, 68, 2, -74, 56, 28, -31]
[74, 4, -46, -54, 49, 14, 32, -61, 20, -5, 1, 49, -64, -98, 68, 2, -74, 56, 28, -31]
[74, 4, -46, -54, 49, 14, 32, -61, 20, -5, 1, 49, -64, -98, 68, 2, -74, 56, 28, -31]
[74, 4, -46, -54, 49, 14, 32, -61, 20, -5, 1, 49, -64, -98, 68, 2, -74, 56, 28, -31]
[74, 4, -46, -54, 49, 14, 32, -61, 20, -5, 1, 49, -64, -98, 68, 2, -74, 56, 28, -31]
[74, 4, -46, -54, 49, 14, 32, -61, 20, -5, 1, 49, -64, -98, 68, 2, -74, 56, 28, -31]
[74, 4, -46, -54, 49, 14, 32, -61, 20, -5, 1, 49, -64, -98, 68, 2, -74, 56, 28, -31]
[74, 4, -46, -54, 49, 14, 32, -61, 20, -5, 1, 49, -64, -98, 68, 2, -74, 56, 28, -31]

关于java - 如何用随机不可变值填充数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60673514/

相关文章:

java - 组件未添加到JPanel对象

Java 为什么我输入的每个输入都会忽略我的 While 循环?

转换要存储在 char* 数组中的整数

javascript - 我可以从集合中插入数组吗?

javascript - 如何使用正则表达式对数组中的 Javascript 对象进行排序

上传文件时出现java.lang.NoSuchMethodError

java - 在这种情况下,将创建 UserHandler 类的多少个实例?

java - 错误 :(24, 46) 错误 : diamond operator is not supported in -source 1. 6(使用 -source 7 或更高版本启用钻石运算符)

在 Ansi C 中使用 toString 转换数字

java - 如何存储巨大的瓦片 map ?