package ru.job4j.collection;

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

/**
 * class ConvertList.
 *
 * @author Andrey Lemdyanov {lemdyanov5@mail.ru)
 * @version $Id$
 * @since 0.1
 */
public class ConvertList {
    /**
     * Поле списка.
     */
    List<Integer> list;

    /**
     * Конструктор.
     *
     * @param list список.
     */
    public ConvertList(List<Integer> list) {
        this.list = list;
    }

    /**
     * Метод для записи двумерного массива в список.
     *
     * @param array массив.
     * @return список.
     */
    public List<Integer> toList(int[][] array) {
        for (int i = 0; i < array.length; i++) {
            for (int j = 0; j < array[i].length; j++) {
                list.add(array[i][j]);
            }
        }
        return list;
    }

    /**
     * Метод для записи списка в двумерный массив с указанием размера.
     *
     * @param list список.
     * @param rows количство строк.
     * @return массив.
     */
    public int[][] toArray(List<Integer> list, int rows) {
        Iterator<Integer> iter = list.iterator();
        int zeroNum = list.size() % rows;
        int size;
        if (zeroNum != 0) {
            size = (list.size() / rows) + 1;
        } else {
            size = list.size() / rows;
        }

        int[][] arr = new int[rows][size];
        for (int i = 0; i < rows; i++) {
            for (int j = 0; j < size; j++) {
                if (iter.hasNext()) {
                    arr[i][j] = iter.next();
                } else {
                    arr[i][j] = 0;
                }
            }
        }
        return arr;
    }

    /**
     * Точка входа.
     *
     * @param args массив строк.
     */
    public static void main(String[] args) {
        ConvertList conlist = new ConvertList(new ArrayList<>());
        int[][] ar = {{1, 2, 3, 4, 5}, {1, 2, 3, 4, 5}, {1, 2, 3, 4, 5}, {1, 2, 3, 4, 5}, {1, 2, 3, 4, 5}};
        List<Integer> list = conlist.toList(ar);
        System.out.println(list);
        int[][] mas = conlist.toArray(list, 7);
        System.out.println(Arrays.deepToString(mas));

    }
}

@@ -1670,32 +1670,417 @@
 urn arr;%0A    %7D%0A%0A
+    /**%0A     * %D0%9C%D0%B5%D1%82%D0%BE%D0%B4 %D0%B4%D0%BB%D1%8F %D0%BA%D0%BE%D0%BD%D0%B2%D0%B5%D1%80%D1%82%D0%B0%D1%86%D0%B8%D0%B8 %D0%BB%D0%B8%D1%81%D1%82%D0%B0 %D0%BC%D0%B0%D1%81%D1%81%D0%B8%D0%B2%D0%BE%D0%B2 %D0%B2 %D0%BE%D0%B4%D0%B8%D0%BD %D0%BB%D0%B8%D1%81%D1%82 Integer.%0A     * @param list %D0%BB%D0%B8%D1%81%D1%82 %D0%BC%D0%B0%D1%81%D1%81%D0%B8%D0%B2%D0%BE%D0%B2.%0A     * @return %D0%BB%D0%B8%D1%81%D1%82.%0A     */%0A    public List%3CInteger%3E convert (List%3Cint%5B%5D%3E list) %7B%0A        List%3CInteger%3E res = new ArrayList%3C%3E();%0A        for (int%5B%5D mas : list) %7B%0A            for (int num : mas) %7B%0A                res.add(num);%0A            %7D%0A        %7D%0A        return res;%0A    %7D%0A%0A
     /**%0A     * %D0%A2
@@ -2543,16 +2543,346 @@
 (mas));%0A
+        ConvertList second = new ConvertList(new ArrayList%3C%3E());%0A        List%3Cint%5B%5D%3E slist = new ArrayList%3C%3E();%0A        slist.add(new int%5B%5D%7B1, 2%7D);%0A        slist.add(new int%5B%5D%7B3, 4, 5, 6%7D);%0A        slist.add(new int%5B%5D%7B7, 8, 9, 10, 11, 12%7D);%0A        List%3CInteger%3E result = second.convert(slist);%0A        System.out.println(result);
 %0A    %7D%0A%7D

task 10037