0
点赞
收藏
分享

微信扫一扫

Java Range<Integer> 怎么遍历 这个问题怎么解决?

Gaaidou 2023-07-13 阅读 75

问题描述

假设我们有一个Range类,用于表示一个整数范围。该类有两个属性:start表示范围的起始值,end表示范围的结束值。我们希望能够遍历该范围内的所有整数,并对每个整数执行一些操作。

解决方案

我们可以使用Java的Range类和一个循环来解决这个问题。以下是一个示例代码:

import java.util.Iterator;

public class Range<Integer> implements Iterable<Integer> {
    private int start;
    private int end;

    public Range(int start, int end) {
        this.start = start;
        this.end = end;
    }

    @Override
    public Iterator<Integer> iterator() {
        return new RangeIterator(start, end);
    }

    private class RangeIterator implements Iterator<Integer> {
        private int current;

        public RangeIterator(int start, int end) {
            this.current = start;
        }

        @Override
        public boolean hasNext() {
            return current <= end;
        }

        @Override
        public Integer next() {
            if (!hasNext()) {
                throw new NoSuchElementException();
            }
            int value = current;
            current++;
            return value;
        }
    }
}

上述代码中,我们定义了一个Range类,并实现了Iterable接口,以便我们可以使用foreach循环遍历范围内的整数。我们还实现了Iterator接口,以便能够在遍历过程中获取下一个整数。

要使用该Range类,我们可以按照以下步骤进行操作:

  1. 创建一个Range对象,指定范围的起始值和结束值。
  2. 使用foreach循环遍历Range对象。在循环体内,我们可以执行一些操作来处理每个整数。

以下是一个使用示例,展示了如何遍历一个范围内的整数并打印它们的平方:

public class Main {
    public static void main(String[] args) {
        Range<Integer> range = new Range<>(1, 5);

        for (int num : range) {
            int square = num * num;
            System.out.println(square);
        }
    }
}

输出结果:

1
4
9
16
25

在上述示例中,我们创建了一个Range对象,表示从1到5的整数范围。然后,我们使用foreach循环遍历该范围,并计算每个整数的平方,并将结果打印出来。

总结

通过实现Iterable接口和Iterator接口,我们可以很容易地遍历一个范围内的整数。以上是一个简单的示例,演示了如何使用Range类来遍历整数范围并对每个整数执行操作。您可以根据自己的需求进行修改和扩展,以适应不同的应用场景。

举报

相关推荐

0 条评论