其實用兩個循環嵌套就能夠實現,但這裏只是爲了演示HashSet的去重功能。java
import java.util.ArrayList;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
import com.sun.java_cup.internal.internal_error;
public class FindSameElements {
/**
* 獲取兩個整型數組之間的相同元素集合
* @param array1 參數數組1
* @param array2 參數數組2
* @return 兩個數組之間相同的元素
*/
public static HashSet findSame(int array1[] , int array2[]){
HashSet result = new HashSet();//重複元素結果集合
HashSet set = new HashSet();//利用HashSet來尋找重複元素
for(int i = 0 ;i < array1.length ; i++){
set.add(array1[i]);;//把array1添加到set,有過濾做用
}
int[] temp = dropSame(array2);
for( int i = 0; i < temp.length ; i++){
if(!set.add(temp[i])){//如有重複元素,add方法返回false
result.add(temp[i]);//將重複出現的元素加入結果集合
}
}
return result;
}
/**
* 去掉數組內部重複元素
* @param array
* @return
*/
public static int[] dropSame(int[] array){
int[] arr = new int[array.length];
HashSet set = new HashSet();
List list = new ArrayList();
for(int i = 0; i < array.length ; i++){
set.add(array[i]);//用set去掉array中重複的元素
}
list.addAll(set);
for(int i = 0 ; i < list.size() ; i++){
arr[i] = list.get(i);
}
return arr;
}
public static void main(String[] args) {
int a[] = {1,6,2,8,5,8,6,9,0};
int b[] = {4,5,4,8,7,6,2,0};
//獲取重複元素集合
HashSet result = findSame(a, b);
//遍歷輸出result元素
for(Object o : result){
System.out.println(o+"");
}
}
}
數組