Java中是否有类似Enumerable.Range(x,y)的东西?

是否有类似C#/。NET的东西

IEnumerable<int> range = Enumerable.Range(0, 100); //.NET

在Java中?

回答:

编辑:作为Java 8,这可能与 java.util.stream.IntStream.range(int startInclusive, int

endExclusive)

回答:

但是您可以有如下内容:

import java.util.Iterator;

public class Range implements Iterable<Integer> {

private int min;

private int count;

public Range(int min, int count) {

this.min = min;

this.count = count;

}

public Iterator<Integer> iterator() {

return new Iterator<Integer>() {

private int cur = min;

private int count = Range.this.count;

public boolean hasNext() {

return count != 0;

}

public Integer next() {

count--;

return cur++; // first return the cur, then increase it.

}

public void remove() {

throw new UnsupportedOperationException();

}

};

}

}

例如,您可以通过以下方式使用Range:

public class TestRange {

public static void main(String[] args) {

for (int i : new Range(1, 10)) {

System.out.println(i);

}

}

}

另外,如果您不喜欢new Range(1, 10)直接使用,则可以使用工厂类:

public final class RangeFactory {

public static Iterable<Integer> range(int a, int b) {

return new Range(a, b);

}

}

这是我们的工厂测试:

public class TestRangeFactory {

public static void main(String[] args) {

for (int i : RangeFactory.range(1, 10)) {

System.out.println(i);

}

}

}

我希望这些会有用:)

以上是 Java中是否有类似Enumerable.Range(x,y)的东西? 的全部内容, 来源链接: utcz.com/qa/417389.html

回到顶部