java取两个已排序数组的交集方法介绍。
public class t{
private int[] a={0,1,3,3,5,7,9};//去比较
private int[] b={-1,0,2,3,4,5,9,9,10};//被比较
private int[] c=null;
public t(){
c=jiaoJi(a,b);
print(); //打印
}
public int[] jiaoJi(int[] a,int[] b){ //处理交集函数
//确定 中间变量数组 jj 的数组大小,其大小为,a,b两数组较小的数组大小
int size;
if (a.length>b.length){
size=b.length;
}else{
size=a.length;
}
//建立中间变量数组 jj
int [] jj=new int [size];
for (int i=0;i<size;i++){ //赋值
jj[i]=0;
}
int k=0;//记录交集元素插入到jj数组的位置
int e=0;//记录 下一次比较的开始位置
for (int i=0;i<a.length;i++){
for (int j=e;j<b.length;j++){
if (a[i]==b[j]){
jj[k++]=a[i]; //存储交集元素,数组jj 下标 k 加一
e=j+1; //记录 下一次比较的开始位置,既从j后面的元素开始
break;//跳出for循环
}
}
}
int [] zzjj=new int[k]; //根据K建立交集的是数组zzjj
for (int i=0;i<k;i++){
zzjj[i]=jj[i];
}
return zzjj;
}
public void print(){//打印
for(int i=0;i<c.length;i++){
System.out.print(c[i]+”, “);
}
System.out.println();
}
public static void main(String args[]){
new t();
}
}
http://blog.csdn.net/ukeychen/article/details/1795734