Implement the missing functionality to compare two matrices
Implement the missing functionality to compare two matrices in JAVA. Use the following conditions to determine if Matrix A < B. 1. Size of A is less than size of B 2. If sizes are equal then the sum of diagonal elements in A is less than the sum of diagonal elements of B Diagonal elements are the values (0,0), (1,1) etc.
Solution
// Here is the solution.....
import java.util.Scanner;
public class Matrix implements Comparable{
 Integer data[][];
 Integer size;
 public Matrix(Integer size) {
 this.size = size;
 data = new Integer[size][size];
 }
/* public int compareTo(Matrix dest) {
 // Replace with actual code
 return 0;
 }*/
       @Override
        public int compareTo(Object o) {
       
            Matrix obj = (Matrix)o;
            if(this.size < obj.size){
                return 1; // condition 1. satisfied
            }
            else if(this.size == obj.size){
                int mat1Sum = calculateDiagonalSum(this); // passing mat1 to the function to calculate sum of diagonal ele.
                int mat2sum = calculateDiagonalSum(obj);// passing mat2 to the function to calculate sum of diagonal ele.
                if(mat1Sum < mat2sum){
                    return 1; //cond. 2 satisfied... if mat1\'s sum is less than that of B return true..
                }
                else{
                    return 0;
                }
            }
           
           
            return 0;
        }
       
        public int calculateDiagonalSum(Matrix m){
            int sum = 0;
            for(int i=0;i<m.size;i++){
                for(int j=0;j<m.size;j++){
                    if(i == j){
                        sum += m.data[i][j];
                    }
                }
            }
            return sum;
        }
           
        public static void main(String [] args){
            System.out.println(\"Enter the size of 1st Matrix : \");
            Scanner sc = new Scanner(System.in);
            Matrix mat1 = new Matrix(sc.nextInt());
            System.out.println(\"Enter the elements of 1st Matrix : \");
            for(int i=0;i<mat1.size;i++){
                for(int j=0;j<mat1.size;j++){
                mat1.data[i][j] = sc.nextInt();
                }
            }
            System.out.println(\"Enter the size of 2nd Matrix : \");
            Matrix mat2 = new Matrix(sc.nextInt());
            System.out.println(\"Enter the elements of 2nd Matrix : \");
            for(int i=0;i<mat2.size;i++){
                for(int j=0;j<mat2.size;j++){
                mat2.data[i][j] = sc.nextInt();
                }
            }
           
            System.out.println(\"Comparing matrixes......\");
            if(mat1.compareTo(mat2) == 0){
                System.out.println(\"Matrix A not less than B\");
            }
            else{
                System.out.println(\"Yes .........Matrix A < B\");
            }
        }
}


