温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

如何使用Java迭代器实现一个range功能

发布时间:2021-01-28 09:52:11 来源:亿速云 阅读:294 作者:Leah 栏目:编程语言

这篇文章将为大家详细讲解有关如何使用Java迭代器实现一个range功能,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

Range 类实现了Python中的range的所有用法,如:range(10),range(5, 10),range(10, 0, -1),range(0, 10, 2)

如果再在 Range 类中定义静态的工厂方法,然后再静态导入工厂方法,就可以更方便地使用了。

使用实例:

for (int x : new Range(10, 0, -1)) {
  System.out.println(x);
}
/* 输出:
10
9
8
7
6
5
4
3
2
1
*/

代码:

class Range implements Iterable<Integer> {
  private final int start;
  private final int end;
  private final int step;
 
  public Range(int end) {
    this(0, end, 1);
  }
 
  public Range(int start, int end) {
    this(start, end, 1);
  }
 
  public Range(int start, int end, int step) {
    this.start = start;
    this.end = end;
    this.step = step;
  }
 
  @Override
  public Iterator<Integer> iterator() {
    return new Itr();
  }
  private class Itr implements Iterator<Integer> {
    int current = start;
    @Override
    public boolean hasNext() {
      return step > 0 ? current < end : current > end;
    }
 
    @Override
    public Integer next() {
      int t = current;
      current += step;
      return t;
    }
  }
}

关于如何使用Java迭代器实现一个range功能就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI