问题描述:
如果两个二维数组 m1 和 m2 具有相同的内容,则它们是相同的。编写一个方法,如果 ml 和 m2 是相同的话,返回 true。使用下面的方法头:
public static boolean equals(int[][] ml,int[][] m2)
编写一个测试程序,提示用户输入两个 3*3 的整数数组,显示两个矩阵是否是相同的。下面是运行示例。
代码:
import java.util.Scanner;
import java.util.Arrays;
public class Test34 {
static Scanner in = new Scanner(System.in);
public static void main(String[] args) {
int[][] m1 =new int[3][3];
int[][] m2 =new int[3][3];
System.out.println("Enter list1:");
for(int i = 0; i < m1.length; i++)
for(int j = 0; j < m1[i].length; j++)
m1[i][j] = in.nextInt();
System.out.println("Enter list2:");
for(int i = 0; i < m2.length; i++)
for(int j = 0; j < m2[i].length; j++)
m2[i][j] = in.nextInt();
if(equals(m1,m2))
System.out.println("The two arrays are identical");
else
System.out.println("The two arrays are not identical");
in.close();
}
public static boolean equals(int[][] m1,int[][] m2)
{
int[] arr1 = new int[m1.length*m1.length];
int[] arr2 = new int[m2.length*m2.length];
int count = 0;
for(int i = 0; i < m1.length; i++)
{
for(int j = 0; j < m1[i].length; j++)
{
arr1[count] = m1[i][j];
arr2[count] = m2[i][j];
count++;
}
}
Arrays.sort(arr1);
Arrays.sort(arr2);
for(int i = 0; i < count; i++)
{
if(arr1[i] != arr2[i])
return false;
}
return true;
}
}