将生成的流保存到 ArrayList 中
Saving a generated stream into an ArrayList
我应该做的是通过 stream.generate 创建一个随机数的 ArrayList。下面的代码是我尝试将其保存到 ArrayList 中的尝试,但它的类型为 "object"。我想我必须先以某种方式将它映射到 int 中,但我不知道该怎么做。代码现在不起作用。
public ArrayList<Integer> createRandomList(ArrayList<Integer> list, int amount) {
ArrayList<Integer> a = Arrays.asList(Stream.generate(new Supplier<Integer>() {
@Override
public Integer get() {
Random rnd = new Random();
return rnd.nextInt(100000);
}
}).limit(amount).mapToInt.toArray());
}
您可以使用收集器:
return Stream.generate (() -> new Random().nextInt(100000))
.limit(amount)
.collect (Collectors.toList());
虽然这会产生 List<Integer>
,但不一定是 ArrayList<Integer>
。
虽然创建单个 Random 实例更有意义:
final Random rnd = new Random();
return Stream.generate (() -> rnd.nextInt(100000))
.limit(amount)
.collect (Collectors.toList());
您可以使用 ints(...)
, box them using boxed()
直接从 Random
对象创建整数流,并使用收集器存储结果:
return new Random().ints(amount, 0, 100000)
.boxed()
.collect(Collectors.toCollection(ArrayList::new));
我应该做的是通过 stream.generate 创建一个随机数的 ArrayList。下面的代码是我尝试将其保存到 ArrayList 中的尝试,但它的类型为 "object"。我想我必须先以某种方式将它映射到 int 中,但我不知道该怎么做。代码现在不起作用。
public ArrayList<Integer> createRandomList(ArrayList<Integer> list, int amount) {
ArrayList<Integer> a = Arrays.asList(Stream.generate(new Supplier<Integer>() {
@Override
public Integer get() {
Random rnd = new Random();
return rnd.nextInt(100000);
}
}).limit(amount).mapToInt.toArray());
}
您可以使用收集器:
return Stream.generate (() -> new Random().nextInt(100000))
.limit(amount)
.collect (Collectors.toList());
虽然这会产生 List<Integer>
,但不一定是 ArrayList<Integer>
。
虽然创建单个 Random 实例更有意义:
final Random rnd = new Random();
return Stream.generate (() -> rnd.nextInt(100000))
.limit(amount)
.collect (Collectors.toList());
您可以使用 ints(...)
, box them using boxed()
直接从 Random
对象创建整数流,并使用收集器存储结果:
return new Random().ints(amount, 0, 100000)
.boxed()
.collect(Collectors.toCollection(ArrayList::new));