Java 两种不同尺寸的二维字符串数组的比较
我有以下二维数组:Java 两种不同尺寸的二维字符串数组的比较,java,arrays,comparison,Java,Arrays,Comparison,我有以下二维数组: String[][] array1 = {{"hello", "hi"}{"bye", "two"}}; String[][] array2 = {{"hello", "hi", "three"}{"bye", "maybe", "third"}, {"3", "rd", "Element"}}; String[][] array3 = {{"hello", "hi"}{"bye", "two"}}; 如何检查它们是否具有相同的值(不同的大小)?谢谢 public静态布尔值
String[][] array1 = {{"hello", "hi"}{"bye", "two"}};
String[][] array2 = {{"hello", "hi", "three"}{"bye", "maybe", "third"}, {"3", "rd", "Element"}};
String[][] array3 = {{"hello", "hi"}{"bye", "two"}};
如何检查它们是否具有相同的值(不同的大小)?谢谢
public静态布尔值deepEquals(对象[]a1,
对象[]a2)
如果指定的两个数组彼此非常相等,则返回true。与equals(Object[],Object[])
方法不同,此方法适用于任意深度的嵌套数组
如果两个数组引用都为null,或者如果它们引用的数组包含相同数量的元素,并且两个数组中所有对应的元素对都是深度相等的,则认为这两个数组引用是深度相等的
如果以下任一条件成立,则两个可能为空的元素e1
和e2
完全相等:
- e1和e2都是对象引用类型的数组,而数组。deepEquals(e1,e2)将返回true
- e1和e2是相同基元类型的数组,数组的适当重载.equals(e1,e2)将返回true
- e1==e2
- e1.equals(e2)将返回true李>
您还可以创建自己的方法:
public boolean compare(String[][] a, String[][] b){
boolean result = true;
int outer = Math.max(a.length, b.length);
int inner = Math.max(a[0].length, b[0].length);
for(int i = 0; i<outer; i++){
for(int j = 0; j<inner; j++){
if(i < a.length && i < b.length && j < a[0].length && j < b[0].length){
if(!a[i][j].equals(b[i][j])){
result = false;
}
}
}
}
return result;
}
公共布尔比较(字符串[][]a、字符串[][]b){
布尔结果=真;
int outer=数学最大值(a.长度,b.长度);
int inner=Math.max(a[0].length,b[0].length);
for(int i=0;i确实可以-这一切取决于您是试图为现实世界的问题解决此问题,还是试图将此问题作为智力练习解决。:-)