gpt4 book ai didi

java - 创建具有特定大小和特定值的字节数组

转载 作者:行者123 更新时间:2023-11-30 07:44:05 25 4
gpt4 key购买 nike

我有一个带有 10 byte 的字节数组。我想创建一个具有特定大小的 bytearray,它将仅包含特定的 10 bytes随机但频率必须几乎相同。

我得到了这个:

public static byte[] a = {97, 98, 99, 100, 101, 102, 103, 104, 105, 49, 45};

我想使用上述 byte 创建一个包含 2000 byte 大小的二进制数据文件。

最佳答案

最简单的方法(从代码角度来看)是使用 Collections.shuffle() ,它会打乱列表。要使用它,您需要创建一个具有所需分布的字节列表

下面是一些执行此操作的代码:

byte[] a = {97, 98, 99, 100, 101, 102, 103, 104, 105, 49, 45};
int SIZE_MULTIPLIER = 20;

List<Byte> bytes = new ArrayList<>();
for (byte b : a) for (int i = 0; i < SIZE_MULTIPLIER; i++) bytes.add(b);
Collections.shuffle(bytes);
byte[] random = new byte[SIZE_MULTIPLIER * a.length];
for (int i = 0; i < bytes.size(); i++) random[i] = bytes.get(i);

请注意,重要的不是初始数据的“随机”程度 - 在这种情况下,可以方便地加载元素 0 二十次,然后加载元素 1 二十次,依此类推。

由于值的范围不是随机的(每个元素与其他元素使用的次数相同),因此最终数组的分布将与初始数组的分布相同.

关于java - 创建具有特定大小和特定值的字节数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34168424/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com