找出兩個陣列中相同的元素,不排序直接兩次迴圈取出
阿新 • • 發佈:2019-01-28
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)+"毫秒"); } }