package pro.ru.job4j.iterator;

import java.util.Iterator;

/**
 * Class IteratorArray.
 *
 * @author Andrey Lemdyanov {lemdyanov5@mail.ru)
 * @version $Id$
 * @since 03.06.2017
 */
public class IteratorArray implements Iterator {
    /**
     * Поле двухмерного массива.
     */
    private final int[][] values;
    /**
     * Поле индекс - количество массивов в массиве.
     */
    private int index = 0;
    /**
     * Поле количества элементов в массиве.
     */
    private int indexdeep = 0;

    /**
     * Конструктор.
     *
     * @param values двухмерный массив.
     */
    public IteratorArray(final int[][] values) {
        this.values = values;
    }

    /**
     * Метод для перехода внутри двумерного массива.
     */
    public void nextArray() {
        if (indexdeep == values[index].length && index < values.length - 1) {
            index++;
            indexdeep = 0;
        }
    }

    /**
     * Переопределение метода hasNext.
     *
     * @return есть ли еще элемент?
     */
    @Override
    public boolean hasNext() {
        nextArray();
        boolean result;
        if (values.length > index && values[index].length > indexdeep) {
            result = true;
        } else if (values.length - 1 == index && values[index].length > indexdeep) {
            result = true;
        } else if (values.length - 1 == index && values[index].length == indexdeep) {
            result = false;
        } else if (values.length > index && values[index].length == indexdeep) {
            result = true;
        } else {
            result = false;
        }
        return result;
    }

    /**
     * Переопределение метода next.
     *
     * @return значение текущего элемента и перевод каретки на следующий.
     */
    @Override
    public Object next() {
        return values[index][indexdeep++];
    }
}

@@ -1081,143 +1081,15 @@
     
-boolean result;%0A        if (values.length %3E index && values%5Bindex%5D.length %3E indexdeep) %7B%0A            result = true;%0A        %7D else if (
+return 
 valu
@@ -1094,33 +1094,33 @@
 lues.length - 1 
-=
+%3E
 = index && value
@@ -1139,348 +1139,24 @@
 gth 
-%3E indexdeep) %7B%0A            result = true;%0A        %7D else if (values.length - 1 == index && values%5Bindex%5D.length == indexdeep) %7B%0A            result = false;%0A        %7D else if (values.length %3E index && values%5Bindex%5D.length == indexdeep) %7B%0A            result = true;%0A        %7D else %7B%0A            result = false;%0A        %7D%0A        return result
+- 1 %3E= indexdeep
 ;%0A  

task 9539