Java:相当于Python的范围(int,int)?

2022-08-31 09:15:14

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


答案 1

老问题,新答案(适用于 Java 8)

IntStream.range(0, 10).forEach(n -> System.out.println(n));

或使用方法引用:

IntStream.range(0, 10).forEach(System.out::println);

答案 2

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;
  }
};