两个 数组,需要挑出相同的元素

比较两个数组间的元素(获取相同和不同的元素) 方法:Arrays.binarySearch(Object[] a, Object key) 筛选出两个数组中相同的值,>= 0 表示相同,< 0 表示不同 。 有相同值是返回元素的下标值。 代码如下: String[] aStr = {"一", "二", "三", "四"}; String[] bStr = {"一", "二"}; List<String> same = Lists.newArrayList(); Li 阅读详情


 一般的 首先肯定会想到 这样的程序

for(int i=0;i<m;i++){

for(int j=0;i<n;j++){

... ... 

}

}


但是这里需要注意的就是 这个方法需要循环 m*n 次才可以 完成此任务。


所以考虑使用哈希表的方法,将一个数组装入哈希表中,然后判断另一个数组是否存在表内即可。这种方法的循环次数是M+N.


例如:

  1. public static <T> List<T> compare(T[] t1, T[] t2) {    
  2.       List<T> list1 = Arrays.asList(t1);    
  3.       List<T> list2 = new ArrayList<T>();    
  4.       for (T t : t2) {    
  5.           if (list1.contains(t)) {    
  6.               list2.add(t);    
  7.           }    
  8.       }    
  9.       return list2;    
  10.   }   
  11.   
  12.   public static void main(String[] arg){  
  13.         
  14.         Integer[] array1 = {1, 2, 3};  
  15.         Integer[] array2 = {1, 2, 3, 4,44};  
  16.           
  17.         List<Integer> list = compare(array1,array2);  
  18.         for (Integer integer : list) {  
  19.             System.out.println(integer);  
  20.         }  
  21.   }  

【一个小实验】找出两个数组中相同的元素 搬运自洒家的QQ空间(不要问我问什么用空间,懒就一个字......),转载请注明出处。   在实际中,我们经常需要找出两个数组A和B中相同的元素(事实上,在面试中或者做题的时候大家也应该遇到过很多这样的题目)。         通常的做法自然是两层for循环,从A中取一个元素α,在B中遍历查找这个α。设A/B的长度分别为N和M。那这个算法的时间复杂度将达到N*M。如果N和M都很大的情况下(比 阅读详情

相关推荐

iOS开发:遍历数组,提取相同元素存入另外一个数组

本篇博文再分享一个比较基础的知识点,在iOS开发过程中,用for循环遍历数组,然后提取需要的元素存入到另外一个数组中,然后再进行其他的操作使用处理。大牛可以忽略走开,只分享给有需要的人。 从后台请求一条轮播图的数据,数据中有多个元素,需要把里面的图片链接取出来,放到数组中,然后赋值给轮播展示出来;还有就是一个数据源里面,有多个商品的信息,需要把商品信息里面...

全沾软贱开发攻城狮 1万+

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

方法一、循环遍历 两个for循环遍历,执行次数最多,效率较低 public static List<Integer> findCommon(int[] arr1, int[] arr2) { List<Integer> list = new ArrayList<>(); if (arr1 == null || arr2 == null || arr1.length == 0 || arr2.length == 0) { return l

smile__k的博客 1万+

详解JS取出两个数组中的不同或相同元素

1、取出两个数组的不同元素 var arr1 = [0,1,2,3,4,5]; var arr2 = [0,4,6,1,3,9]; function getArrDifference(arr1, arr2) { return arr1.concat(arr2).filter(function(v, i, arr) { return arr.indexOf(v) === arr.lastIndexOf(v); }); } console.log(getArrDifference(arr1,arr2)); //输出:(4) [2, 5, 6, 9] (1)c

两个数组提取相同元素

给定两个含有n个元素的有序整形数组a和b,求出其共同元素。

鲸落博客 1190

SAP公司间采购后台配置及前台操作详解

公司间采购后台配置及前台操作详解 SAP 实施中公司间交易几乎每个项目都会有此业务需求,比如内地很多公司都会在香港设置贸易型子公司。通过香港公司接单,然后转内地公司生产,或内地公司通过香港公司采购进口原材料,这些业务必然会涉及到公司间交易,下面我将详细说明下SAP是如何实现这种业务场景的,供大家参考。 配置前必须前台先创建公司间供应商主数据和客户主数据 1. 创建相应的客户主数据 功能说明 公司间...

weixin_40672823的博客 1万+

winedt + miktex + SumatraPDF 搭建latex环境

整个环境包含三部分: - winedt: 前端编辑器 - miktex: 后端编译器 - SumatraPDF: 预览器顺序无关紧要, 不过如果先装miktex的话, 可能会被winedt在安装的时候自动找到路径从而不需要设置.1.安装miktex首先在latex-project官网, 打开”get”后, 有四种平台: Linux, Mac OS, Windows, Online. 我写论文

Iteration makes perfection. 6475

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

```javascript let arr1 = [1,5,8,9], arr2 = [4,5,1,2]; let findSame = function(arr1,arr2){ let newArr = [], sortArr1 = arr1.sort(), sortArr2 = arr2.sort(); let i = 0, j = 0; while ( i < a.

niuniu_mango的博客 7811

交叉验证选型指南:k折、留一法、时序与分层CV实战决策

交叉验证是评估机器学习模型泛化能力的基础技术,其核心在于通过系统性数据重划分,缓解有限样本对真实分布估计的偏差。原理上,它通过控制训练-验证数据的独立性与代表性,诊断过拟合风险并提升性能指标的稳定性。技术价值体现在避免单次切分导致的结果偶然性、数据利用低效及验证集污染等问题。典型应用场景涵盖分类任务中的类别不平衡处理、时间序列预测的因果约束、用户行为建模中的数据泄露防控等。本文聚焦k折交叉验证、留一法、时间序列交叉验证与分层抽样等主流方法的适用边界与工程落地要点,结合过拟合诊断和泛化能力评估两大热词,提供可

dienangpiao2051的博客 477

获取两个数组中相同的值

import java.util.ArrayList; import java.util.Arrays; import java.util.List; public class Demo { /** * 获取两个数组中相同的值 */ public static String[] num(String[] a, String[] b) { List list

zzf555123的博客 2741

LaTeX参考文献格式apsrev4-1,增加文献标题

APS的LaTeX参考文献格式apsrev4-1是隐藏标题的,如果想要出现标题,需要更改apsrev4-1.bst文件内容 在apsrev4-1.bst文件靠后部分,定义不同类型文献格式的地方,将article类型的内容替换为, FUNCTION {article} { output.bibitem format.authors booktitle empty$ { "author" output.check }{ output } if$ author format.

loading1234567的博客 5032

systermverilog中for循环中的fork join执行情况分析

仅为本人学习记录,如有错误感谢指正!

qq_63807221的博客 1461

JAVA两个数组间元素的比较(找出相同或者不同元素)

转自https://blog.youkuaiyun.com/mr_linjw/article/details/50388268 1,找出两个数组中相同的元素 public static Set<Integer> getIds(Integer[] a, Integer[] b){ Set<Integer> same = new HashSet<Integer&g...

ChangKA的博客 1万+

【QML初学者文档】一问读懂QML基础开发(内附大量简单源码)

QML是Qt的一大特色,拥有强大的UI制作能力。但是想要学好QML,还需要一些细节和技巧的掌握。本篇文章将为你提供完整的QML知识体系,让你成为Qt的UI魔法师!

BenBierBa的博客 2万+

Python:统计两个数组相同元素个数

项目上做数据整合时,会涉及多张表,往往需要先了解两个表里的主key数组有多少相同元素。以前都是用两个for循环遍历,这样效率很低,不符合Python的精髓。正确用法如下: 1.对于没有相同元素的数组 两个数组如下: array1 = [1,2,3,4,5] array2 = [1,3,3,5,5] 统计两个数组相同元素个数: #统计两个数组相同元素个数 len(set(array1...

opp003的博客 3万+

一种抑制undershoot/overshoot锐化算法介绍

一、USM 当增强图像的边缘、细节信息等高频信息时,图像的锐化视觉效果会得到较大提升。提高图像锐化的一种经典算法为非锐化掩码(UNsharp Masking)技术。该技术首先通过高通滤波并与缩放系数相乘,其结果再与原始图像相加,即可对高频信息进行增强。其主要的原理如下图所示: 其中,对图像进行高通滤波的另一种等效方法为:原始图像减去原始图像的低通滤波图像,其结果被称之为“掩码”。因此,上述的USM方法可以表示为: 原始图像减去原始图像低通滤波之后的图像得到掩码M。 2.掩...

大熊 4242

FATFS挂载多个存储设备(2):功能配置及功能测试

本文介绍了基于FATFS文件系统实现多存储设备挂载的方法,包含底层设备驱动函数编写、功能配置、功能测试。

kevin1499的博客 2585

获取两个数组相同元素,不同元素,及相同元素不同元素新数组

废话不多说直接上代码! /** * 获取两个数组相同元素 * @param a * @param b * @return */ public static <T> Set<T> getIds(T[] a, T[] b){ ...

weixin_33738578的博客 1085

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

JS取出两个数组中的不同或相同元素

1、取出两个数组的不同元素 var arr1 = [0,1,2,3,4,5]; var arr2 = [0,4,6,1,3,9]; function getArrDifference(arr1, arr2) { return arr1.concat(arr2).filter(function(v, i, arr) { return arr.indexOf(v...

weixin_42171955的博客 9095

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

查找两个数组中的相同元素---Java

两次遍历 思考后想出来两种方法,第一种在两个数组中,每个数组不能存在重复元素,那么可以直接暴力循环,复杂度为为O(n2),而且这种方法只能适用于arr1和arr2各自中不存在重复元素。 public static List<Integer> findSame(int[] arr1, int[] arr2) { List<Integer> list = ...

Hollake的博客 1万+

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

JAVA比较两个数组中是否存在相同元素,并且取出相同元素(以两个String[]数组为例)

/** * 比较两个字符串数组的是否存在相同内容,并对相同内容以数组形式返回 * @param orgnElecAreaIdArr * @param chekElecAreaIdArr * @return */ private String[] compareTwoArraySame(String[] arr1, String[] arr...

qq_42755868的博客 3470

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

找出两个数组中不相同的元素,网上贴出的代码基本如下: /** * 找出两个数组中不同的元素 */ public class Test3 { public static Set<Integer> compare(Integer[] a, Integer[] b) { Set<Integer> aSet = new HashSet&l...

weixin_30629653的博客 2549

判断两个数组是否拥有相同的元素

Array.prototype.isHasSameEle = function (array2) { //做比较的两个数组 var array1 = this; //临时数组存放 var tempArray1 = [];//临时数组1 var tempArray2 = [];/...

Nemo的笔记本 7489

jq对数组进行操作,找出两个数组的相同元素、不同元素、数组去重

前台对数组进行操作时,经常需要用到 :找出两个数组的相同元素、不同元素、数组去重 操作。因此 特来总结一下: 1、找出两个数组的相同元素: var arr1 = [1, 2, 3, 4, 5]; var arr2 = [2, 4, 6, 8]; var ar = arr1.filter(function(n) { ...

tianzhen620的博客 5917

【C语言】比较两个数组中是否有相同的元素

比较两个数组中是否有相同的元素

LX18792732127的博客 1万+

查找两个数组相同元素

攒RP ing 一场面试的一道算法题,题目如下: 有两个升序的数组,在这两个数组里面有且只有一个相同的元素,考虑时间和空间复杂度,找到该元素,禁用JS中所有方法,单纯算法题(emmmmm,为何和我之前的不一样)话不多说,上代码,我真是越来越喜欢动手敲一下了: function foo(arr_1, arr_2) { var j =0; for(var i=0;i<arr_1.length;i++){ if(arr_1[i] === arr_2[j]){

独酌101112的博客 2006
上一篇: Java ExecutorService四种线程池的例子与说明
下一篇: windows下SVN服务器与web 站点的同步
lin___
博客等级 码龄12年 23粉丝 22原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值