import java.util.*; 
//------------------------------------------------------------------------------
//Creating, and printing a 2 dimensional ArrayList
//------------------------------------------------------------------------------
public class arrayListX2
{
    public static void main (String[] args) 
    {   
        ArrayList <ArrayList<Integer>> data = new ArrayList <> ();      //define a 2dim ArrayList  

        for (int i=0; i<10; i++)
        {
            ArrayList<Integer> row  = new ArrayList<>();                //define a 1dim ArrayList

            for (int j=0; j<12; j++)
            {
                int num = (int) (Math.random()*90) +10;                 //generate a random number 10-99
                row.add(num);                                           //store num in 1dim ArrayList 
            }
            data.add(row);                                              //store row in 2dim ArrayList
        }

        System.out.println(" Printing entire 2 dim ArrayList ----------------");
        System.out.println(data);                                       //print entire list
        System.out.println();
        
        System.out.println(" Printing entire rows ---------------------------");

        for (ArrayList<Integer> row : data)
            System.out.println(row);                                    //print entire row
        System.out.println();
 
        System.out.println(" Printing each cell at a time -------------------");

        for (int i=0; i<data.size(); i++)
        {
            for (int j=0; j < data.get(i).size(); j++)
                System.out.print(data.get(i).get(j) + "\t");            //print 1 element at a time
            System.out.println();                                       //similar to array[i][j]
        }
    }
}