JAVA自定义个方法,比较二维数组的内容是否相等
展开全部
public boolean test(int[][] a,int b[][]){
if(a.length!=b.length){
return flase;
}else{
for(int i=0;i<a.length;i++){
if(a[i].length!=b.length){
return false;
}else{
if(!Arrays.equals(a[i],b[i])){
return false;
}
}
}
}
return true;
}
直接在网页中写的,大致意思是这样。
补充~~~~~~~~~~~~~~~~~~~~~
完整程序
import java.util.Arrays;
public class Test_1 {
public static void main(String args[]) throws {
int a[][]={{1,2},{2,3}};
int b[][]={{1,2},{2,2}};
Test_1 test=new Test_1();
if(test.test(a, b)){
System.out.println("ok");
}else{
System.out.println("不相等");
}
}
public boolean test(int[][] a, int b[][]) {
if (a.length != b.length) {
return false;
} else {
for (int i = 0; i < a.length; i++) {
if (a[i].length != b[i].length) {
return false;
} else {
if (!Arrays.equals(a[i], b[i])) {
return false;
}
}
}
}
return true;
}
}
if(a.length!=b.length){
return flase;
}else{
for(int i=0;i<a.length;i++){
if(a[i].length!=b.length){
return false;
}else{
if(!Arrays.equals(a[i],b[i])){
return false;
}
}
}
}
return true;
}
直接在网页中写的,大致意思是这样。
补充~~~~~~~~~~~~~~~~~~~~~
完整程序
import java.util.Arrays;
public class Test_1 {
public static void main(String args[]) throws {
int a[][]={{1,2},{2,3}};
int b[][]={{1,2},{2,2}};
Test_1 test=new Test_1();
if(test.test(a, b)){
System.out.println("ok");
}else{
System.out.println("不相等");
}
}
public boolean test(int[][] a, int b[][]) {
if (a.length != b.length) {
return false;
} else {
for (int i = 0; i < a.length; i++) {
if (a[i].length != b[i].length) {
return false;
} else {
if (!Arrays.equals(a[i], b[i])) {
return false;
}
}
}
}
return true;
}
}
展开全部
方法1:用循环一个一个的比较就行了.
方法2:写个比较函数 如:IsSame(a,b)==true
方法3:把a和b都定义成一个类,然后重载==运算符.就是可以直接判断a==b
方法4:把两个数组相乘,再除以2,看是不是和a相等...(噢, 愚蠢的想法!)
......
其实以上方法实质上都一样,都是调用一个循环来比较.除了LZ说的一个一个读字节判断以外,似乎就没有其他方法了啊......
方法2:写个比较函数 如:IsSame(a,b)==true
方法3:把a和b都定义成一个类,然后重载==运算符.就是可以直接判断a==b
方法4:把两个数组相乘,再除以2,看是不是和a相等...(噢, 愚蠢的想法!)
......
其实以上方法实质上都一样,都是调用一个循环来比较.除了LZ说的一个一个读字节判断以外,似乎就没有其他方法了啊......
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
public class ArrayEquals {
//通用类型处理方法,T为除基本类型以外的所有类型,T必须覆写 equals()方法.
public static <T> boolean deepEquals(T[][] a,T[][] b){
try{
for(int i=0; i<a.length; i++)
for(int k=0; k<a[i].length; k++)
if(!a[i][k].equals(b[i][k]))return false;
return true;
}catch(Exception e){}
return false;
}
//基本类型处理方法,这里是int类的,其它基本类型方法雷同
public static boolean deepEquals(int[][] a,int[][] b){
try{
for(int i=0; i<a.length; i++)
for(int j=0; j<a[i].length; j++)
if(a[i][j]!=b[i][j])return false;
return true;
}catch(Exception e){}
return false;
}
public static void main(String[] args) {
}
}
//通用类型处理方法,T为除基本类型以外的所有类型,T必须覆写 equals()方法.
public static <T> boolean deepEquals(T[][] a,T[][] b){
try{
for(int i=0; i<a.length; i++)
for(int k=0; k<a[i].length; k++)
if(!a[i][k].equals(b[i][k]))return false;
return true;
}catch(Exception e){}
return false;
}
//基本类型处理方法,这里是int类的,其它基本类型方法雷同
public static boolean deepEquals(int[][] a,int[][] b){
try{
for(int i=0; i<a.length; i++)
for(int j=0; j<a[i].length; j++)
if(a[i][j]!=b[i][j])return false;
return true;
}catch(Exception e){}
return false;
}
public static void main(String[] args) {
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询