ric*_*ric 1 java generics range
我想获取一系列值,例如Python中的range函数。
# Python range
a = range(0,1.0,0.01)
b = range(5,10,2)
Run Code Online (Sandbox Code Playgroud)
在Java中,希望得到List这样的结果。
// Java range
public class range{
private double start;
private double end;
private double step;
public range(double start,double end, double step) {
this.start = start;
this.end = end;
this.step = step;
}
public List<Double> asList(){
List<Double> ret = new ArrayList<Double>();
for(double i = this.start;i <= this.end; i += this.step){
ret.add(i);
}
return ret;
}
}
Run Code Online (Sandbox Code Playgroud)
但是,我认为当需要一定范围的Integer时,此代码可以计算出冗余。
您能用Java更聪明的方法或实现吗?
您可以使用流来生成范围并将其收集到列表中
IntStream.range(0, 10)
.collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)
请注意,第一个数字为包含性,第二个为排除性。您可以使用rangeClosed方法来包含第二个参数。 http://docs.oracle.com/javase/8/docs/api/java/util/stream/IntStream.html#range-int-int-
其他原语还有其他类型的流(例如,请参见DoubleStream.iterate)。
| 归档时间: |
|
| 查看次数: |
1715 次 |
| 最近记录: |