package ru.job4j.convertlist;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

/**
 * Класс ConvertList реализует функционал конвертации двумерного массива в ArrayList и наоборот.
 *
 * @author Gureyev Ilya (mailto:ill-jah@yandex.ru)
 * @version 1
 * @since 2017-05-10
 */
class ConvertList {
    /**
     * Конвертирует массив в список.
     * @param array конвертируемый массив.
     * @return список.
     */
    public List<Integer> toList(int[][] array) {
        List<Integer> list = new ArrayList<>(array.length);
        for (int a = 0; a < array.length; a++) {
            for (int b = 0; b < array[a].length; b++) {
                list.add(array[a][b]);
            }
        }
        return list;
    }
    /**
     * Конвертирует список в массив.
     * @param list конвертируемый список.
     * @param rows количество элементов во вложенных массивах.
     * @return список.
     */
    public int[][] toArray(List<Integer> list, int rows) {
        int size = (int) Math.ceil((double) list.size() / rows);
        int[][] array = new int[size][rows];
        Iterator<Integer> iter = list.iterator();
        label:
        for (int a = 0; a < size; a++) {
            for (int b = 0; b < rows; b++) {
                if (!iter.hasNext()) {
                    break label;
                }
                array[a][b] = iter.next();
            }
        }
        return array;
    }
}
@@ -59,36 +59,8 @@
 t;%0D%0A
-import java.util.Iterator;%0D%0A
 impo
@@ -252,17 +252,17 @@
 version 
-1
+2
 %0D%0A * @si
@@ -1111,65 +1111,25 @@
     
-Iterator%3CInteger%3E iter = list.iterator();%0D%0A        label:
+int a = 0, b = 0;
 %0D%0A  
@@ -1143,87 +1143,67 @@
 or (
-int a = 0; a %3C size; a++) %7B%0D%0A            for (int b = 0; b %3C rows; b++) %7B%0D%0A    
+Integer item : list) %7B%0D%0A            array%5Ba%5D%5Bb++%5D = item;%0D%0A
     
@@ -1218,23 +1218,17 @@
 if (
-!iter.hasNext()
+b == rows
 ) %7B%0D
@@ -1248,86 +1248,35 @@
     
-    break label;%0D%0A                %7D%0D%0A                array%5Ba%5D%5Bb%5D = iter.next()
+b = 0;%0D%0A                a++
 ;%0D%0A 
@@ -1330,9 +1330,11 @@
 %0A    %7D%0D%0A
-
 %7D
+%0D%0A

task 10035. junior.pack1.p5.ch1.task1.3 v4