如何在Java 8中生成给定长度的列表? [英] How to generate a list of given length in Java 8?
本文介绍了如何在Java 8中生成给定长度的列表?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想通过调用方法x次来创建一个列表(或一般的集合)。在Python中它将是这样的。
I want to create a list (or collection in general) by calling a method x times. In Python it would be something like this.
self.generated = [self.generate() for _ in range(length)]
我尝试在JDK 8中编写类似的代码。
I tried to code something similar in JDK 8.
this.generated = IntStream.range(0, length)
.mapToObj(n -> this.generate())
.collect(Collectors.toList());
它有效,但不知何故它感觉还不错。有没有更合适的方法呢?
It works, but somehow it doesn't feel allright. Is there a more proper way of doing it?
推荐答案
我不是Python开发人员,所以我可能误解了你的例子,但从中判断Java示例您可能正在寻找类似
I am not Python developer so I may misunderstood your example, but judging from Java example you may be looking for something like
Stream.generate(this::generate).limit(length).collect(Collectors.toList());
但是 Brian Goetz提到你的方法
IntStream.range(0, length).mapToObj(i->...)
将在并行方面表现得更好。
will perform significantly better in parallel.
这篇关于如何在Java 8中生成给定长度的列表?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文