继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

有2个已经从小到大排序好的数组,要求只遍历一次,找出2个数组中共有的元素

二流程序员
关注TA
已关注
手记 2
粉丝 0
获赞 20

package test;

import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;

public class Test {
public static void main(String[] args) {
int[] a ={6,5,4,3,2};
int[] b ={8,5,3,2,1,0};
Set<Integer> setA=new HashSet<Integer>();
Set<Integer> setB=new HashSet<Integer>();
Set<Integer> setC=new HashSet<Integer>();
Set<Integer> setD=new HashSet<Integer>();
for(int i=0;i<(a.length>=b.length?a.length:b.length);i++){
if(i<a.length){
setA.add(a[i]);
setC.add(a[i]);
}
if(i<b.length){
setB.add(b[i]);
setD.add(b[i]);
}
}
if(a.length>=b.length){
setA.removeAll(setB);
setC.removeAll(setA);
Iterator<Integer> it =setC.iterator();
while(it.hasNext()){
Integer x=it.next();
System.out.println(x);
}
}else{
setB.removeAll(setA);
setD.removeAll(setB);
Iterator<Integer> it =setD.iterator();
while(it.hasNext()){
Integer x=it.next();
System.out.println(x);
}
}
}
}

打开App,阅读手记
1人推荐
发表评论
随时随地看视频慕课网APP

热门评论

更为简便的方法:利用阿帕奇的jar包:

public static void main(String[] args) {

int[] a ={1,2,3,4,5,6,7};

int[] b ={0,1,2,3,4,5,6,8,9,10};

List<Integer> list =new ArrayList<Integer>();

for(int i :a){

if(ArrayUtils.contains(b, i)){

list.add(i);

}

}

for(Integer l:list){

System.out.println(l);

}

}


查看全部评论