比较两个数组是否有相同值 数组a 数组b两个数组长度不同,都是string类型的看两个数组是否有相同值 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 先循环数组a,将每个元素放入一个map中。再循环数组b,从map中取,看是否存在相同元素。 将数组中的元素一一全部添加到一个set中。若set的size等于2个数组的长度那么无重复值,反之则有相同值 import java.util.*;public class CsdnTest { public static void main(String[] args) { String[] strArr_1 = {"1","2","3","1"}; String[] strArr_2 = {"1","9","8","7"}; HashSet<String> set = new HashSet<String>(); HashMap<String,String> map = new HashMap<String, String>(); for(String str:strArr_1) { set.add(str); } for(int i=0;i<strArr_2.length;++i) { if(!set.add(strArr_2[i])){ map.put(String.valueOf(i), strArr_2[i]); } } for(String str:map.keySet()) { System.out.print("strArr_2["+str+"] : "+map.get(str)+"重复\n"); } }} 虽然SET能够自动保证不添加相同元素,但是它也应该是通过一个一个对比实现的,和一楼的差不了多少,我觉得要是想效率高还是先排序(快速排序和归并排序都是高效的),排序过程中加入if语句进行判断。楼上的代码很工整,有功夫的 问题解决了 哈哈 谢谢大家我的数组不是很大所以用了两重循环 因为数组的长度不同,所以得先判断一下 String[] a = {"1","2","3"}; String[] b = {"9","1","8","7"}; if (a.length > b.length) { for (int j=0; j<a.length; j++) { for (int i=0; i<b.length; i++){ if(a[j] == b[i]){ System.out.print("重复"); } } } } else { for (int i=0; i<b.length; i++){ for (int j=0; j<a.length; j++) { if(a[j] == b[i]){ System.out.print("重复"); } } } } linux下的patch命令 ireport中如何自定义纸张的大小 用java语言调用数据库的问题 Myeclipse 点发布按钮没反应,谁知道怎么回事? 2007年度 上海 的 JAVA 程序员 情况调查 ! 页面有的时候不刷新 使用Tomcat服务器开发WEB项目要重启服务器该如何解决? 求验证上传文件的安全性的办法! 请教,各位大虾!怎么是乱码 在一个FORM中如何重定向? 大型网站并发问题求救 我供分,大家学习java的spring技术
再循环数组b,从map中取,看是否存在相同元素。
import java.util.*;public class CsdnTest {
public static void main(String[] args) {
String[] strArr_1 = {"1","2","3","1"};
String[] strArr_2 = {"1","9","8","7"};
HashSet<String> set = new HashSet<String>();
HashMap<String,String> map = new HashMap<String, String>();
for(String str:strArr_1)
{
set.add(str);
}
for(int i=0;i<strArr_2.length;++i)
{
if(!set.add(strArr_2[i])){
map.put(String.valueOf(i), strArr_2[i]);
}
}
for(String str:map.keySet()) {
System.out.print("strArr_2["+str+"] : "+map.get(str)+"重复\n");
}
}
}
楼上的代码很工整,有功夫的
我的数组不是很大所以用了两重循环
因为数组的长度不同,所以得先判断一下
String[] a = {"1","2","3"};
String[] b = {"9","1","8","7"}; if (a.length > b.length) {
for (int j=0; j<a.length; j++) {
for (int i=0; i<b.length; i++){
if(a[j] == b[i]){
System.out.print("重复");
}
}
}
} else {
for (int i=0; i<b.length; i++){
for (int j=0; j<a.length; j++) {
if(a[j] == b[i]){
System.out.print("重复");
}
}
}
}