问题描述
两个stirng数组都有值,怎么判断两个数组里的值是否有相同?
解决方案
第一种是嵌套一个二重循环,比较每一个元素,如果有则终止循环!第二种是遍历那个比较较短的数组,然后将每个元素与那个较长数组序列化以后的字串作比较,这里要注意到是,要找到能区分开每个元素的特殊字符将那个较长数组串联起来,然后做contans操作。伪代码如下:String[] str1 = {"11","22",.."88"};//较长数组String[] str2 = {"11","22"};第一种for(int i=0;i<str2.length;i++)//要将数组短的放在外面,这样能减少循环次数{ String str3 = str2[i]; for(int j=0;j<str1.length;j++) { String str4 = str1[j]; if(str4.equals(str3)) return; }}第二种String flag = "@";StringBuffer str = new StringBuffer("");StringBuffer str3;for(int i=0;i<str1.length;i++){ str.append(flag); str.append(str1[i]); str.append(flag);}for(int i=0;i<str2.length;i++){ str3 = new StringBuffer(""); str3.append(flag); str3.append(str2[i]); str3.append(flag); if(str.toString().contans(str3.toString())) { return; }}第二种比第一种效率要高点!
解决方案二:
那你就要先了解一下,“==”和equals()的不同之处了!