黑马程序员技术交流社区
标题:
技术贴
[打印本页]
作者:
Aliblues
时间:
2019-3-29 20:14
标题:
技术贴
//
设计一个方法,用于比较两个数组的内容是否相同。
public static boolean compare(int[] arr,int[] arr1){
boolean A ;//= false;
if(arr==arr1){
A = true;
}else if(arr!=null && arr1!=null){
if(arr.length==arr1.length){
A = false; //如果A的值未初始化,则在该部须返回A的值。if语句中嵌套for循环,for循环体使用到的变量须初始化。
for(int x=0;x<arr.length;x++){
if(arr[x]!=arr1[x]){
A = false;
}else{
A = true;
}
}
}else{
A = false;
}
}else if(arr==null && arr1==null){
A = true;
}else{
A = false;
}
return A;
}
上面是我写的语句,用分类讨论思想,但是程序其实可以优化,而且我在if语句中嵌套for语句时,用到了未初始化的变量会报错。可以只考虑不相同的情况,返回false,否则返回true。提供的答案如下:
public class Test07 { public static void main(String[] args) { //定义两个数组,分别使用静态初始化完成数组元素的初始化 int[] arr = {11, 22, 33, 44, 55}; //int[] arr2 = {11, 22, 33, 44, 55}; int[] arr2 = {11, 22, 33, 44, 5}; //调用方法,用变量接收 boolean flag = compare(arr,arr2); //输出结果 System.out.println(flag); } //定义一个方法,用于比较两个数组的内容是否相同 public static boolean compare(int[] arr, int[] arr2) { //首先比较数组长度,如果长度不相同,数组内容肯定不相同,返回false if(arr.length != arr2.length) { return false; } //其次遍历,比较两个数组中的每一个元素,只要有元素不相同,返回false for(int x=0; x<arr.length; x++) { if(arr[x] != arr2[x]) { return false; } } //最后循环遍历结束后,返回true return true;
}}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2