Kevin Kevin - 1 month ago 4
Java Question

JAVA Need help involving matrices and arrays

I'm working on a test prep program. Its not homework or for a grade, i just need help finishing and fixing it so i can study and better understand how it works. the directions are "Write a program named Matrix1.java that randonly fills in 0s and 1s into an n-by-n matrix, prints the matrix." I'm still pretty new to coding so any help would be greatly appreciated. This is the code i have so far:

public class Matrix1{

public static void main(String[] args){
Matrix1 matrix=new Matrix1(5);
matrix.fill();
matrix.print();


}

public Matrix1(int n){
int[][] matrix = new int[n][n];
}
public void fill(int n){ // randomly fill in 0s and 1s

Random rand = new Random();
for(int i = 0; i < n; i++){
for(int j = 0; j < n; j++){
Integer r = rand.nextInt;
matrix[i][j] = Math.abs(r);
}
}
}
public void print(int[][]matrix, int n){ //print the matrix, each row is printed in a separate line
for(int i = 0; i< n; i++){
for(int j = 0; j<n; j++){
System.out.println(array[i][j]);
}
}
}
}


i ended up confusing myself and im not sure how to fix it or continue. i think im partially on the right track though. Thank you!

Led Led
Answer

Your code after fixes.

import java.util.Random;

public class Matrix1 {

private final int[][] matrix;
private final int n;

public Matrix1(int n) {
    this.n = n;
    this.matrix = new int[n][n];
}

/**
 * randomly fill in 0s and 1s
 */
public void fill() {
    Random rand = new Random();
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < n; j++) {
            matrix[i][j] = rand.nextBoolean() ? 1 : 0;
        }
    }
}

/**
 * print the matrix, each row is printed in a separate line
 */
public void print() {
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < n; j++) {
            System.out.print(matrix[i][j]);
        }
        System.out.println();
    }
}

public static void main(String[] args) {
    Matrix1 matrix = new Matrix1(5);
    matrix.fill();
    matrix.print();
}

}