疯狂java


您现在的位置: 疯狂软件 >> 新闻资讯 >> 正文

找出两个数组中相同的元素


 

有两个数组,需要找出这两个数组之间相同的元素。
   
    package cn.luxh.jpa.test;import java.util.HashSet;import java.util.Set;import org.junit.Test;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);
   
    }
   
    }}