使用 java 中的流 write/create 具有 3 个唯一随机数的 int[] 的最短方法是什么?
What would be the shortest way to write/create an int[] with 3 unique random numbers using a stream in java?
我目前正在使用以下代码:
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();
我目前正在使用以下代码:
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();