菜鸟一只,分享一下自己的心得:
/*
需求:
设计一个方法,用于比较两个数组的内容是否相同
思路:
1:定义两个数组,分别使用静态初始化完成数组元素的初始化
2:定义一个方法,用于比较两个数组的内容是否相同
3:比较两个数组的内容是否相同,按照下面的步骤实现就可以了
首先比较数组长度,如果长度不相同,数组内容肯定不相同,返回false
其次遍历,比较两个数组中的每一个元素,只要有元素不相同,返回false
最后循环遍历结束后,返回true
4:调用方法,用变量接收
5:输出结果
*/
public class Test07 {
public static void main(String[] args) {
//定义两个数组,分别使用静态初始化完成数组元素的初始化
int[] arr = {11, 22, 33, 55, 44};
int[] arr2 = {22, 11, 33, 44, 55};
System.out.println(xd2(arr, arr2));
}
public static boolean xd(int[] a, int[] b) {
if (a.length != b.length) return false;
for (int i = 0; i < a.length; i++) {
if (a[i] != b[i]) return false;
}
return true;
}
/**
* 判断两个数组内容是否相同相同返回true
* @param a
* @param b
* @return
*/
public static boolean xd2(int[] a, int[] b) {
if (a.length != b.length) return false;//判断数组长度是否相同
int co = 0;// 计数器 用于累计相等的数量
int[] bj = new int[a.length];//标记用数组 用于标记被查找的相同元素
for (int i = 0; i < a.length; i++) {
for (int j = 0; j < a.length; j++) {
if (bj[j] == 0) { //判断是否被查找过
if (a[i] == b[j]) { //判断是否相同
bj[j] = 1; //标记被查找过
co++; //计数
}
}
}
}
if (co != a.length) { //判断相同元素个数是否与数组长度相同
return false;
}else {
return true;
}
}
}
xd方法实现了题目的需求,但是上课的时候一个同学提到了数组顺序不同的问题,于是我写了xd2方法,虽然很简单,而且还有一些可以简化的部分,但我想分享的是:
int[] bj = new int[a.length];//标记用数组 用于标记被查找的相同元素和 bj[j] = 1; //标记被查找过用数组去标记数组是我想出的一个小技巧,同为数组好操作,而且灵活,可以进行各种标记而且不止一种,在各种需要选择,标记的场景应该还会有其他用处,希望有大神指点。
|
|