Arrays 我想在两个不同的arraylist中收集公共元素
我想知道结果Arrays 我想在两个不同的arraylist中收集公共元素,arrays,Arrays,我想知道结果 ArrayList1 = [a,b,c,d] ArrayList1 = [d,c,e,f,g] 我怎样才能做到这一点?试试这个 ArrayListFinal = [c,d] 您的问题是找到表示为的交点∩ 由两个数组A和B组成 假设数组未排序。最简单的方法是逐个比较元素,如下所示: for(int i =0;i<list1.size();i++){ for(int j=0;j<list2.size();j++){ if(list.get(j).
ArrayList1 = [a,b,c,d]
ArrayList1 = [d,c,e,f,g]
我怎样才能做到这一点?试试这个
ArrayListFinal = [c,d]
您的问题是找到表示为的交点∩ 由两个数组A和B组成 假设数组未排序。最简单的方法是逐个比较元素,如下所示:
for(int i =0;i<list1.size();i++){
for(int j=0;j<list2.size();j++){
if(list.get(j).equals(list2.get(i))){
listfinal.add(list.get(i));
}
}
}
for(int i=0;i<listfinal.size();i++){
System.out.println(list1.get(i));
}
但是,如果arr2比arr1短得多,您可以使用哈希表来加速:
function getIntersect(arr1, arr2) {
var temp = [];
for(var i = 0; i < arr1.length; i++){
for(var k = 0; k < arr2.length; k++){
if(arr1[i] == arr2[k]){
temp.push( arr1[i]);
break;
}
}
}
return temp;
}
你能告诉我们为什么你的代码不工作吗?你有两个ArrayList 1
function getIntersect(arr1, arr2) {
var r = [], o = {}, l = arr2.length, i, v;
for (i = 0; i < l; i++) {
o[arr2[i]] = true;
}
l = arr1.length;
for (i = 0; i < l; i++) {
v = arr1[i];
if (v in o) {
r.push(v);
}
}
return r;
}