如何在Java中获取一系列值
我想得到一系列值,比如Python中的range函数如何在Java中获取一系列值,java,generics,range,Java,Generics,Range,我想得到一系列值,比如Python中的range函数 # Python range a = range(0,1.0,0.01) b = range(5,10,2) 在Java中,我希望得到列表这样的结果 // Java range public class range{ private double start; private double end; private double step; public range(double start,double
# Python range
a = range(0,1.0,0.01)
b = range(5,10,2)
在Java中,我希望得到列表这样的结果
// 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;
}
}
//Java范围
公共类范围{
私人双启动;
专用双端;
私人双台阶;
公共范围(双起点、双终点、双台阶){
this.start=start;
this.end=end;
这个步骤=步骤;
}
公共列表asList(){
List ret=new ArrayList();
对于(double i=this.start;i您可以使用流生成范围并将其收集到列表中
IntStream.range(0, 10)
.collect(Collectors.toList());
请注意,第一个数字是包含的,第二个是独占的。您可以使用rangeClosed方法包含第二个参数。
其他原语还有其他类型的流(例如,请参见DoubleStream.iterate)。您可以使用流生成范围并将其收集到列表中
IntStream.range(0, 10)
.collect(Collectors.toList());
请注意,第一个数字是包含的,第二个是独占的。您可以使用rangeClosed方法包含第二个参数。
其他原语还有其他类型的流(例如,请参见DoubleStream.iterate)。如果您需要生成任何类型的数字,并且允许您使用第三方库,我建议您使用
最上面的,范围
用于对范围进行操作,如“数学抽象”。但您可以从范围生成序列:
Set<Integer> set = ContiguousSet.create(Range.closed(1, 5), DiscreteDomain.integers());
// set contains [2, 3, 4]
Set-Set=ContiguousSet.create(Range.closed(1,5),DiscreteDomain.integers());
//集合包含[2,3,4]
默认情况下,Guava为您提供三种离散域:整数、长整数和大整数。但您可以创建自己的域:
您可以创建自己的DiscreteDomain对象,但必须记住DiscreteDomain契约的几个重要方面
请咨询离散域的实现特性。如果您需要生成任何类型的数字,并且允许您使用第三方库,我建议您使用
最上面的,范围
用于对范围进行操作,如“数学抽象”。但您可以从范围生成序列:
Set<Integer> set = ContiguousSet.create(Range.closed(1, 5), DiscreteDomain.integers());
// set contains [2, 3, 4]
Set-Set=ContiguousSet.create(Range.closed(1,5),DiscreteDomain.integers());
//集合包含[2,3,4]
默认情况下,Guava为您提供三种离散域:整数、长整数和大整数。但您可以创建自己的域:
您可以创建自己的DiscreteDomain对象,但必须记住DiscreteDomain契约的几个重要方面
请参考离散域
实现特性。什么是“计算冗余”?你是否需要像Python那样为所有基本类型提供通用解决方案?@muzzlator如果我将整数放入构造函数,它们将被视为双精度。在计算asList时,我认为不需要双精度。这是错误吗?@ilya是的,我希望知道。什么是“计算冗余”?你是否需要一个针对所有基本类型的通用解决方案,正如Python所做的那样?@muzzlator如果我将整数放入构造函数,它们将被视为double。在asList的计算中,我认为double的精度是不需要的。这是错的吗?@ilya是的,我希望知道。此外,还有一个方法,其中包括两端re也是其他一些原语的其他流类型(例如,请参见DoubleStream.generate或iterate)您能编辑您的答案并包含所有这些附加信息吗?这是一个简单的解决方案。谢谢。Java SE 7中是否有类似的方法?除此之外,还有一个方法,其中包括两端。对于一些其他原语,还有其他流类型(例如,请参阅DoubleStream.generate或iterate)您能编辑您的答案并包含所有这些附加信息吗?这是一个简单的解决方案。谢谢。Java SE 7中的方法类似吗?谢谢,这个库对我的目的很有用。谢谢,这个库对我的目的很有用。