Java中是否有任何方法可以按步骤1或其他长度初始化集合?
例如,我喜欢初始化一个像[1,2,3,…,100]这样的集合 通常,我们的做法如下:Java中是否有任何方法可以按步骤1或其他长度初始化集合?,java,Java,例如,我喜欢初始化一个像[1,2,3,…,100]这样的集合 通常,我们的做法如下: for(int i = 1;i <= 100;i++ ){ set.add(i); } for(inti=1;i您可以使用Java8流 例如: Set<Integer> mySet = IntStream.range(1,101).boxed().collect(Collectors.toSet()); Set mySet=IntStream.range(1101.boxed().
for(int i = 1;i <= 100;i++ ){
set.add(i);
}
for(inti=1;i您可以使用Java8流
例如:
Set<Integer> mySet = IntStream.range(1,101).boxed().collect(Collectors.toSet());
Set mySet=IntStream.range(1101.boxed().collect(Collectors.toSet());
或仅适用于奇数:
Set<Integer> mySet = IntStream.range(1,101).filter(i->i%2==1).boxed().collect(Collectors.toSet());
Set mySet=IntStream.range(1101).filter(i->i%2==1).boxed().collect(Collectors.toSet());
IntStream.range
是获取给定范围内数字的简单方法
- 然后,如果只需要部分数字,可以应用过滤器
- 最后,您可以将它们收集到您想要的任何集合中
对于奇数,你也可以做一些类似于IntStream.iterate(1,i->i+2).limit(51).
@Keppil-Yep,这将更有效IntStream.iterate(1,i->i+2)。limit(51)
不太可读。你必须计算才能理解它(而不是仅仅阅读100
),并且它很容易出错。实际上,这个流也包括101
。@user140547:我认为它不太容易出错,因为您可以精确控制元素的数量。这可能只是口味的问题,所以我只是补充说,对于那些喜欢它的人,还有另一种方法。@Keppil如果您的问题是这样的话“获取前51个奇数元素”就可以了。如果你的问题是“获取1到100之间的奇数”,那么就不可以了。你的for循环就可以了。如果你非常需要它,用一个方法包装它。