梦想帝国

音乐,程序

 

用最少的循环次数求出两个数组中的相同元素

问题:有两个长度分别为M和N的数组,用最少的循环次数求出他们中的相同元素。
分析:用容器来解决。将这两个数组分别放在两个ArrayList中,再调用ArrayList的retainAll方法即可。
        A.retainAll(B):从A集合中删除B集合中不包含的元素.
实现代码如下:

package com.miaojian.li;

import java.util.ArrayList;
import java.util.Collection;

public class FindFromArray {

 
    public static void main(String[] args) {

    int[] array1={1,2,3,4,5,6,7};
    int[] array2={2,4,6,8,10,1};
    Collection c1=new ArrayList();
    Collection c2=new ArrayList();
  
    for(int i=0;i<array1.length;i++)    //将array1添加到c1中
    {
        c1.add(array1[i]);
    }
    for(int i=0;i<array2.length;i++)   //将array2添加到c2中
   {
        c2.add(array2[i]);
   }
   c1.retainAll(c2);          //从c1集合中删除c2集合中不包含的元素
   System.out.println(c1);
   }
}
因此总的循环次数是M+N
结果如下 :

[1, 2, 4, 6]

posted on 2012-10-30 22:34 天鹰之翼 阅读(308) 评论(1)  编辑  收藏

评论

# re: 用最少的循环次数求出两个数组中的相同元素 2012-10-31 13:01 cintana

为啥要用循环?用new ArrayList(Array.asList())
另外,这个程序的性能值得思考,要比排序后查找要差  回复  更多评论   


只有注册用户登录后才能发表评论。


网站导航:
 

导航

统计

常用链接

留言簿

随笔档案

搜索

最新评论

阅读排行榜

评论排行榜