1. 程式人生 > >找出兩個陣列中相同的元素,不排序直接兩次迴圈取出

找出兩個陣列中相同的元素,不排序直接兩次迴圈取出

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;


public class Test{
	/**
	 * 獲取兩個整型陣列之間的重複元素集合
	 * @param array1 陣列引數1
	 * @param array2 陣列引數2
	 * @return
	 */
	public List findSame(int array1[],int array2[]){
		List result=new ArrayList();//重複元素結果集合
		HashMap hashMap=new HashMap();//利用hashmap來尋找重複元素
		for(int i=0;i<array1.length;i++){//將第一個陣列加入hashmap
			String temp=array1[i]+"";
			hashMap.put(temp,temp);
		}
		for(int i=0;i<array2.length;i++){//遍歷第二個陣列
			String temp=array2[i]+"";
			if(hashMap.get(temp)!=null){//在已經存在第一個陣列所有元素的hashmap裡尋找第二數組裡的元素
				result.add(array2[i]);//將重複出現的元素加入結果集合
			}
		}
		return result;
	}

	public static void main(String args[]){
		long timeBegin=System.currentTimeMillis();
		int   a[]   =   {1,   6,   2,   8,   5,   8,   6,   9,   0}; 
		int   b[]   =   {4,   5,   4,   8,   7,   6,   2,   0}; 
        //獲取重複元素集合
		List list=new Test().findSame(a, b);
		//遍歷輸出重複元素
		for(int i=0;i<list.size();i++){
			System.out.println(list.get(i));
		}
		long timeEnd=System.currentTimeMillis();
		System.out.println("共花費時間為"+(timeEnd-timeBegin)+"毫秒");		
    }
}