如何用Java迭代器实现类似Python range()函数的代码示例?

2026-05-28 05:371阅读0评论SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计523个文字,预计阅读时间需要3分钟。

如何用Java迭代器实现类似Python range()函数的代码示例?

若想创建一个可迭代的对象,那么该类必须实现`Iterable`接口,并通过`__iter__`方法返回一个`Iterator`实例。以下是一个简化版的示例:

pythonclass MyIterable: def __init__(self, data): self.data=data

def __iter__(self): return MyIterator(self.data)

class MyIterator: def __init__(self, data): self.data=data self.index=0

def __next__(self): if self.index >=len(self.data): raise StopIteration result=self.data[self.index] self.index +=1 return result

使用示例my_iterable=MyIterable([1, 2, 3, 4, 5])for item in my_iterable: print(item)

`Range`类实现了Python中`range`的功能:

pythonclass Range: def __init__(self, start, stop=None, step=1): if stop is None: start, stop=0, start self.start=start self.stop=stop self.step=step

def __iter__(self): current=self.start while current

使用示例for i in Range(10): print(i, end=' ')print()

for i in Range(5, 10): print(i, end=' ')print()

for i in Range(10, 0, -1): print(i, end=' ')print()

如果要想迭代一个类的对象,那么该类必须实现 Iterable 接口,然后通过 iterator 方法返回一个 Iterator 实例。

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

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

如何用Java迭代器实现类似Python 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; } } }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持易盾网络。

标签:Range

本文共计523个文字,预计阅读时间需要3分钟。

如何用Java迭代器实现类似Python range()函数的代码示例?

若想创建一个可迭代的对象,那么该类必须实现`Iterable`接口,并通过`__iter__`方法返回一个`Iterator`实例。以下是一个简化版的示例:

pythonclass MyIterable: def __init__(self, data): self.data=data

def __iter__(self): return MyIterator(self.data)

class MyIterator: def __init__(self, data): self.data=data self.index=0

def __next__(self): if self.index >=len(self.data): raise StopIteration result=self.data[self.index] self.index +=1 return result

使用示例my_iterable=MyIterable([1, 2, 3, 4, 5])for item in my_iterable: print(item)

`Range`类实现了Python中`range`的功能:

pythonclass Range: def __init__(self, start, stop=None, step=1): if stop is None: start, stop=0, start self.start=start self.stop=stop self.step=step

def __iter__(self): current=self.start while current

使用示例for i in Range(10): print(i, end=' ')print()

for i in Range(5, 10): print(i, end=' ')print()

for i in Range(10, 0, -1): print(i, end=' ')print()

如果要想迭代一个类的对象,那么该类必须实现 Iterable 接口,然后通过 iterator 方法返回一个 Iterator 实例。

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

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

如何用Java迭代器实现类似Python 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; } } }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持易盾网络。

标签:Range