Java是否有与Python的range(int, int)
方法等效的方法?
发布于 2012-11-28 01:40:44
Guava还提供了与Python的range
类似的功能
Range.closed(1, 5).asSet(DiscreteDomains.integers());
您还可以使用Guava的AbstractIterator实现一个相当简单的迭代器来做同样的事情:
return new AbstractIterator<Integer>() {
int next = getStart();
@Override protected Integer computeNext() {
if (isBeyondEnd(next)) {
return endOfData();
}
Integer result = next;
next = next + getStep();
return result;
}
};
发布于 2014-04-07 12:00:38
旧问题,新答案(针对Java 8)
IntStream.range(0, 10).forEach(n -> System.out.println(n));
或者使用方法引用:
IntStream.range(0, 10).forEach(System.out::println);
发布于 2011-09-30 03:01:47
我正在开发一个名为Jools的小Java utils库,它包含一个类Range
,它提供了您需要的功能(有一个可下载的JAR)。
构造函数可以是Range(int stop)
、Range(int start, int stop)
或Range(int start, int stop, int step)
(类似于for循环),您可以遍历它(使用惰性计算),也可以使用它的toList()
方法显式地获取范围列表。
for (int i : new Range(10)) {...} // i = 0,1,2,3,4,5,6,7,8,9
for (int i : new Range(4,10)) {...} // i = 4,5,6,7,8,9
for (int i : new Range(0,10,2)) {...} // i = 0,2,4,6,8
Range range = new Range(0,10,2);
range.toList(); // [0,2,4,6,8]
https://stackoverflow.com/questions/3790142
复制相似问题