In: Computer Science
To the TwoDArray class, add a method called transpose() that generates the transpose of a 2D array with the same number of rows and columns (i.e., a square matrix). Add appropriate code in main() of the TwoDArrayApp class to execute the transpose() method and use the display() method to print the transposed matrix.
/**
* TwoDArray.java
*/
public class TwoDArray
{
private int a[][];
private int nRows;
public TwoDArray(int maxRows, int maxCols)
//constructor
{
a = new int[maxRows][maxCols];
nRows = 0;
}
//******************************************************************
public void insert (int[] row)
{
a[nRows] = row;
nRows++;
}
//******************************************************************
public void display()
{
for (int i = 0; i < nRows;
i++)
{
for (int j = 0;
j < a[0].length; j++)
System.out.format("%5d", a[i][j]);
System.out.println(" ");
}
}
}
public class TwoDArrayApp{
public static void main(String[] args )
{
int maxRows = 20;
int maxCols = 20;
TwoDArray arr = new TwoDArray(maxRows, maxCols);
int b[][] = {{1, 2, 3, 4}, {11, 22, 33, 44}, {2, 4, 6,
8},{100, 200, 300, 400}};
arr.insert(b[0]); arr.insert(b[1]); arr.insert(b[2]);
arr.insert(b[3]);
System.out.println("The original matrix: ");
arr.display();
System.out.println("Column sum: ");
arr.sumCols();
System.out.println(" ");
System.out.println("\nThe matrix after being
transposed: ");
arr.transpose();
}
}
/** * TwoDArray.java */ public class TwoDArray { private int a[][]; private int nRows; public TwoDArray(int maxRows, int maxCols) //constructor { a = new int[maxRows][maxCols]; nRows = 0; } //****************************************************************** public void insert(int[] row) { a[nRows] = row; nRows++; } //****************************************************************** public void display() { for (int i = 0; i < nRows; i++) { for (int j = 0; j < a[0].length; j++) System.out.format("%5d", a[i][j]); System.out.println(" "); } } public void sumCols() { for (int i = 0; i < a[0].length; i++) { int sum = 0; for (int j = 0; j < nRows; j++) { sum += a[j][i]; } System.out.println("Sum of all elements of column " + i + " is " + sum); } } public TwoDArray transpose() { TwoDArray result = new TwoDArray(a[0].length, nRows); for (int i = 0; i < a[0].length; i++) { int[] row = new int[nRows]; for (int j = 0; j < nRows; j++) row[j] = a[j][i]; result.insert(row); } return result; } }
/** * TwoDArrayApp.java */ public class TwoDArrayApp { public static void main(String[] args) { int maxRows = 20; int maxCols = 20; TwoDArray arr = new TwoDArray(maxRows, maxCols); int b[][] = {{1, 2, 3, 4}, {11, 22, 33, 44}, {2, 4, 6, 8}, {100, 200, 300, 400}}; arr.insert(b[0]); arr.insert(b[1]); arr.insert(b[2]); arr.insert(b[3]); System.out.println("The original matrix: "); arr.display(); System.out.println("Column sum: "); arr.sumCols(); System.out.println(" "); System.out.println("\nThe matrix after being transposed: "); arr.transpose(); arr.display(); } }