###前提・実現したいこと
{@link Iterator<Integer>} インターフェースを実装して、
{@link DivisorIteration#next()} を呼び出すごとに,
コンストラクタで与えた自然数の正の約数を小さいものから返していくクラスを作りたい。
next()が最後に返す数は、コンストラクタで与えた数になる。
next()はInteger型を返す。
上記の条件に沿って必要なコードをご教授お願い致します。
###DivisorIteration.Java
Java
1public class DivisorIteration implements Iterator<Integer> { 2 private int number; 3 private int currentNum; 4 5 public DivisorIteration(int number) { 6 if (number <= 0) { 7 throw new IllegalArgumentException("コンストラクタに与える整数は 0 以上でなければなりません。"); 8 } 9 this.number = number; 10 this.currentNum = 1; 11 while (hasNext()) { 12 next(); 13 currentNum++; 14 } 15 } 16 17 // @Override 18 public boolean hasNext() { 19 // TODO Auto-generated method stub 20 if (number >= currentNum) { 21 return true; 22 } else { 23 return false; 24 } 25 } 26 27 // @Override 28 public Integer next() { 29 // TODO Auto-generated method stub 30 while (number % currentNum != 0) { 31 currentNum++; 32 } 33 return currentNum; 34 } 35}
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。