java - 使用 java 中的流编写/创建具有 3 个唯一随机数的 int[] 的最短方法是什么?

标签 java random int

我目前正在使用以下代码:

Map<Integer, Integer> numbersMap = new HashMap<>();
return IntStream.generate(() -> (int)(10 * Math.random() + 1))
                .filter(i -> numbersMap.put(i, i) == null)
                .limit(3)
                .toArray();

例如,我想知道是否有一种方法可以在不使用 HashMap 的情况下执行此操作,因为我只使用键。

最佳答案

IntStream.generate(() -> (int) (10 * Math.random() + 1))
         .distinct()
         .limit(3)
         .toArray();

ThreadLocalRandom.current().ints(1, 10 + 1)
                           .distinct()
                           .limit(3)
                           .toArray();

关于java - 使用 java 中的流编写/创建具有 3 个唯一随机数的 int[] 的最短方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61253144/

相关文章:

c++ - 产生高斯噪声

Java依赖管理

java - 从 Activity 的 onCreate 中已运行的服务获取数据

mysql - SQL RAND查询选择所有记录并且不使用联接表

c++ - 使用 tr1 <random> 创建非均匀整数分布

java 。使用扫描器将整数值转换为字符串

string - C++ 将 int 转换为字符串

java - Java 32位系统int[]数组的内存大小

java - 从 ftp 服务器下载文件

java - "Simple"Trie实现