import java.util.HashSet; import java.util.Set; import org.junit.Test; /** * 类描述 * @author 赵炫 * @create_time 2012-9-22 上午10:40:23 * @project Hlgw */ public class ArrayTest { /** * 找出两个数组中相同的元素 * @param array1 * @param array2 * @return 返回相同的元素 */ public Set<Integer> findSameElementIn2Arrays(Integer[] array1,Integer[] array2) { Set<Integer> sameElementSet = new HashSet<Integer>();//用来存放两个数组中相同的元素 Set<Integer> tempSet = new HashSet<Integer>();//用来存放数组1中的元素 for(int i=0;i<array1.length;i++) { tempSet.add(array1[i]);//把数组1中的元素放到Set中,可以去除重复的元素 } for(int j=0;j<array2.length;j++) { //把数组2中的元素添加到tempSet中 //如果tempSet中已存在相同的元素,则tempSet.add(array2[j])返回false if(!tempSet.add(array2[j])) { //返回false,说明当前元素是两个数组中相同的元 sameElementSet.add(array2[j]); } } return sameElementSet; } @Test public void testFindSameElementIn2Arrays(){ Integer[] array1 = {1,2,3,4,1,2,4,6,7,8,10,22,33}; Integer[] array2 = {1,2,3,4,1,2,4,6,7,8,10,22,33,55,66,77,88,99}; Set<Integer> sameElementSet = findSameElementIn2Arrays(array1,array2); for(Integer i : sameElementSet) { System.out.println(i); } } }
结果:
1
2
33
3
4
6
22
7
8
10