首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Java:等同于Python的range(int,int)?

Java:等同于Python的range(int,int)?
EN

Stack Overflow用户
提问于 2010-09-25 03:04:51
回答 12查看 92.7K关注 0票数 112

Java是否有与Python的range(int, int)方法等效的方法?

EN

回答 12

Stack Overflow用户

回答已采纳

发布于 2012-11-28 01:40:44

Guava还提供了与Python的range类似的功能

代码语言:javascript
复制
Range.closed(1, 5).asSet(DiscreteDomains.integers());

您还可以使用Guava的AbstractIterator实现一个相当简单的迭代器来做同样的事情:

代码语言:javascript
复制
return new AbstractIterator<Integer>() {
  int next = getStart();

  @Override protected Integer computeNext() {
    if (isBeyondEnd(next)) {
      return endOfData();
    }
    Integer result = next;
    next = next + getStep();
    return result;
  }
};
票数 30
EN

Stack Overflow用户

发布于 2014-04-07 12:00:38

旧问题,新答案(针对Java 8)

代码语言:javascript
复制
IntStream.range(0, 10).forEach(n -> System.out.println(n));

或者使用方法引用:

代码语言:javascript
复制
IntStream.range(0, 10).forEach(System.out::println);
票数 246
EN

Stack Overflow用户

发布于 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()方法显式地获取范围列表。

代码语言:javascript
复制
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]
票数 17
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3790142

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档