Warmup Sort ArrayList

import java.util.ArrayList;
ArrayList list = new ArrayList();
list.add(1);
list.add(3);
list.add(-2);
list.add(4);

list.sort(null);

System.out.println(Arrays.toString(list.toArray()));
[-2, 1, 3, 4]

Homework

import java.util.ArrayList;
import java.util.Arrays;
ArrayList<ArrayList> generateMatrix(int n){
    System.out.println("the random matrix is: ");
    ArrayList<ArrayList> list = new ArrayList();
    for (int i = 0; i<n; i++){
        ArrayList innerListI = new ArrayList();
        list.add(innerListI);
        System.out.println("");
        for (int j = 0; j<n; j++){
            int random = (int)(Math.random() + .5);
            innerListI.add(random);
            System.out.print(random);
        }
    }
    System.out.println("");
    return list;
}

int[] cleanArray(int[] arrayToClean){
    ArrayList<Integer> list = new ArrayList<Integer>();
    for(int v : arrayToClean){
        list.add(Integer.valueOf(v));
    }
    list.removeIf(n-> (n==-1));
    int[] arrayToPopulate = new int[list.size()];
    for(int i = 0; i<list.size();i++){
        arrayToPopulate[i] = list.get(i);
    }
    return arrayToPopulate; 
}

int[] largestRowIndexes(ArrayList<ArrayList> matrix){
    int height = matrix.size();
    int width = matrix.get(0).size();
    int[] output = new int[height];
    int index = 0;
    for(int a:output){
        output[index] = -1;
        index++;
    }


    int max = 0;
    for(int i = 0; i<height;i++){
        int sum = 0;
        for(int j = 0; j<width;j++){
            sum += (int)matrix.get(i).get(j);
        }
        if(sum > max){
            max = sum;
            output = new int[height];
            index = 0;
            for(int a:output){
                output[index] = -1;
                index++;
            }
            output[0] = i;
        }
        else if (sum == max){
            output[i]=i;
        }
        
    }
    return cleanArray(output);
}
int[] largestColumnIndexes(ArrayList<ArrayList> matrix){
    int height = matrix.size();
    int width = matrix.get(0).size();
    int[] output = new int[height];
    int index = 0;
    for(int a:output){
        output[index] = -1;
        index++;
    }


    int max = 0;
    for(int j = 0; j<height;j++){
        int sum = 0;
        for(int i = 0; i<width;i++){
            sum += (int)matrix.get(i).get(j);
        }
        if(sum > max){
            max = sum;
            output = new int[height];
            index = 0;
            for(int a:output){
                output[index] = -1;
                index++;
            }
            output[0] = j;
        }
        else if (sum == max){
            output[j]=j;
        }
    }


    return cleanArray(output);
}

class main {
    public static void main(String[] args){
        ArrayList<ArrayList> matrix = generateMatrix(10);


        System.out.println("The rows (indexes) with the most 1s are: "+Arrays.toString(largestRowIndexes(matrix)));
        System.out.println("The columns (indexes) with the most 1s are: "+Arrays.toString(largestColumnIndexes(matrix)));
    }
}

main.main(null);
the random matrix is: 

0111000111
1101000101
0011101111
1111100010
1111000110
1100000000
1010010010
0011101000
1101011100
1101110001
The rows (indexes) with the most 1s are: [2]
The columns (indexes) with the most 1s are: [3]