北在北方

太白枝头看,花开不计年,杯中浮日月,楼外是青天。
随笔 - 200, 文章 - 0, 评论 - 239, 阅读 - 68万

导航

< 2025年1月 >
29 30 31 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31 1
2 3 4 5 6 7 8

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

Posted on   CN.programmer.Luxh  阅读(2751)  评论(2编辑  收藏  举报

  有两个数组,需要找出这两个数组之间相同的元素。

复制代码
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);
        }
    }
}
复制代码

 

编辑推荐:
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 现代计算机视觉入门之:什么是图片特征编码
· .NET 9 new features-C#13新的锁类型和语义
· Linux系统下SQL Server数据库镜像配置全流程详解
阅读排行:
· Sdcb Chats 技术博客:数据库 ID 选型的曲折之路 - 从 Guid 到自增 ID,再到
· 语音处理 开源项目 EchoSharp
· 《HelloGitHub》第 106 期
· mysql8.0无备份通过idb文件恢复数据过程、idb文件修复和tablespace id不一致处
· 使用 Dify + LLM 构建精确任务处理应用
点击右上角即可分享
微信分享提示