首页 > 编程知识 正文

java enumeration 原理,java中方法参数为iterable怎么用

时间:2023-05-06 18:38:51 阅读:274519 作者:4801

小编典典

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

endExclusive)

在Java8之前:

Java中没有这样的东西, 但是您可以有如下内容:

import java.util.Iterator;

public class Range implements Iterable {

private int min;

private int count;

public Range(int min, int count) {

this.min = min;

this.count = count;

}

public Iterator iterator() {

return new Iterator() {

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

}

}

}

我希望这些会有用:)

2020-11-01

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。