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()));
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]