0

スパイラル用にJavaでカスタムジェネレーターを実装していますが、どちらのアプローチが優れているのか疑問に思っています:

public class SpiralIterator<E> implements Iterator<List<E>> {
    private final int parameters;

    public SpiralIterator(int parameters) {
        this.parameters = parameters;
    }

    @Override
    public boolean hasNext() {
        return true;
    }

    @Override
    public List<E> next() {
        //...
    }

    @Override
    public void remove() {
        throw new UnsupportedOperationException("Not supported yet.");
    }
}

また

public class SpiralIterator<E> implements Iterator<E[]> {
    private final int parameters;

    public SpiralIterator(int parameters) {
        this.parameters = parameters;
    }

    @Override
    public boolean hasNext() {
        return true;
    }

    @Override
    public E[] next() {
        //...
    }

    @Override
    public void remove() {
        throw new UnsupportedOperationException("Not supported yet.");
    }
}

で作成するとしましょうSpiralIterator<Integer> spiralIterator = new SpiralIterator<>(2);

次に、 を介して新しい要素を取得しList<E> next = spiralIterator.next();、続いてE e1 = next.get(0);および をE e2 = next.get(1);それぞれ使用して要素を取得します。それ以外の場合は、 を介して取得しE[] next = spiralIterator.next();、その後 および をE e1 = next[0];介して取得しますE e2 = next[1];

2 つのアプローチのどちらが優先されますか?

また、それを a と呼ぶことは (慣例の観点から) 「許可」されSpiralGeneratorますか?

4

1 に答える 1