package ru.job4j.list;

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

/**
 * @author <a href="mailto:shynybaev@gmail.com">Assan Shynybayev</a>
 * @version 1.0
 * @since 0.1
 */
public class ConvertList2Array {
    /**
     * Конвертация списка в двумерный массив
     * @param list список
     * @param rows столбцы
     * @return двумерный массив
     */
    public int[][] toArray(List<Integer> list, int rows) {
        int cells = list.size() / rows;

        if (cells != 0) {
            cells += 1;
        }

        int[][] array = new int[rows][cells];
        int index = 0;

        for (int[] tempArray: array) {
            for (int i = 0; i < cells; i++) {
                tempArray[i] = index < list.size() ? list.get(index) : 0;
                index++;
            }
        }

        return array;
    }


    public List<Integer> convert(List<int[]> listOfArray) {
        List<Integer> result = new ArrayList<>();

        for (int[] array : listOfArray) {
            for (int i : array) {
                result.add(i);
            }
        }
        return result;
    }
}

@@ -17,16 +17,17 @@
 .list;%0A%0A
+%0A
 import j
@@ -67,43 +67,16 @@
 til.
-Arrays;%0Aimport java.util.LinkedList
+Iterator
 ;%0Aim
@@ -237,16 +237,17 @@
 Array %7B%0A
+%0A
     /**%0A
@@ -455,40 +455,53 @@
     
-int cells = list.size() / rows;%0A
+Iterator%3CInteger%3E iterator = list.iterator();
 %0A   
@@ -510,59 +510,74 @@
    i
-f (
+nt 
 cells 
-!
 = 
-0) %7B%0A            cells += 1;%0A        %7D%0A
+list.size() / rows + (list.size() %25 rows == 0 ? 0 : 1);
 %0A   
@@ -589,21 +589,22 @@
 int%5B%5D%5B%5D 
-array
+result
  = new i
@@ -620,24 +620,25 @@
 cells%5D;%0A
+%0A
         
 int inde
@@ -633,59 +633,37 @@
     
+for (
 int i
-ndex
  = 0;
-%0A%0A        for (int%5B%5D tempArray: array
+ i %3C rows; i++
 ) %7B%0A
@@ -683,24 +683,24 @@
 or (int 
-i
+j
  = 0; 
-i
+j
  %3C cells
@@ -701,17 +701,17 @@
  cells; 
-i
+j
 ++) %7B%0A  
@@ -728,89 +728,141 @@
     
-tempArray%5Bi%5D = index %3C list.size() ? list.get(index) : 0;%0A                index++
+if (iterator.hasNext())%0A                    result%5Bi%5D%5Bj%5D = iterator.next();%0A                else%0A                    result%5Bi%5D%5Bj%5D = 0
 ;%0A  
@@ -883,17 +883,16 @@
       %7D%0A
-%0A
         
@@ -898,21 +898,22 @@
  return 
-array
+result
 ;%0A    %7D%0A
@@ -913,17 +913,16 @@
 %0A    %7D%0A%0A
-%0A
     publ
@@ -1023,17 +1023,16 @@
 st%3C%3E();%0A
-%0A
         

update solution ConvertList2Array task