Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/267.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java中是否有任何方法可以按步骤1或其他长度初始化集合?_Java - Fatal编程技术网

Java中是否有任何方法可以按步骤1或其他长度初始化集合?

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().

例如,我喜欢初始化一个像[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().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循环就可以了。如果你非常需要它,用一个方法包装它。