找出两个字符串数组中的相同元素
public static List<String> getAllSameElement1(String[] strArr1,String[] strArr2) { if(strArr1 == null || strArr2 == null) { return null; } List<String> strList1 = new ArrayList<String>(Arrays.asList(strArr1)); //----------代码段1 List<String> strList2 = new ArrayList<String>(Arrays.asList(strArr2)); //--------------代码段2 strList1.retainAll(strList2); return strList1; }
另一种实现,数组比较大的情况下
- 由 于最近看见一文章,是描述数据库mergeJoin 的扫描方式的,仿照里面的大致逻辑自己写了<br>
- 个类似的方法。如果数组大的话,这个要比getAllSameElement1好
- 大致思路是:1.首先将两个数组A、B排序(递增)<br>
- 2.分别从A和B中各取出一元素a,b,对a和b进行比 较:<br>
- 1) 如果a与b相等,则将a或b存入一指定集合中<br>
- 2)如果a小于b,则继续取A的下一元素,再与b比 较<br>
- 3) 如果a大于b,则取B的下一个元素,与a进行比较<br>
- 3.反复进行步骤2,知道A或B的元素都比较完<br>
- 4.返回集合(存了相同的元素)<br>
public static List<String> getAllSameElement2(String[] strArr1,String[] strArr2) { if(strArr1 == null || strArr2 == null) { return null; } Arrays.sort(strArr1); Arrays.sort(strArr2); List<String> list = new ArrayList<String>(); int k = 0; int j = 0; while(k<strArr1.length && j<strArr2.length) { if(strArr1[k].compareTo(strArr2[j])==0) { if(strArr1[k].equals(strArr2[j]) ) { list.add(strArr1[k]); k++; j++; } continue; } else if(strArr1[k].compareTo(strArr2[j])<0){ k++; } else { j++; } } return list; }
来自:http://blog.sina.com.cn/s/blog_76ce6f790100pais.html
转载于:https://www.cnblogs.com/dingchenghong/archive/2012/05/25/2517598.html
找出两个字符串数组中的相同元素相关推荐
- 找出两个字符串中最大子字符串,如abractyeyt,dgdsaeactyey的最大子串为actyet
// 最大子字符串.cpp : 定义控制台应用程序的入口点. // //找出两个字符串中最大子字符串,如"abractyeyt","dgdsaeactyey"的 ...
- 找出两个字符串中最长的相同子字符串
//找出两个字符串中最长的相同子字符串public class Stringdemo {public static void main(String[] args) {String str1 = ne ...
- java基础—找出两个字符串中最大的子串
// 找一个字符串的最大子串public static void main(String[] args) {String s1 = "qwerabcdtyuiop";String ...
- 快速找出两个字符串中所有相同的字符
面试时看到一个试题, 编写算法, 快速找出两个字符串中所有相同的字符. 现实现如下: 1. 利用TreeSet来查找是否有相同的字符(之前是利用TreeSet来查找) 2. 利用HashSet来查找是 ...
- C语言找出两个字符串唯一不同的一个字符(附完整源码)
C语言找出两个字符串唯一不同的一个字符 C语言找出两个字符串唯一不同的一个字符完整源码(定义,实现,main函数测试) C语言找出两个字符串唯一不同的一个字符完整源码(定义,实现,main函数测试) ...
- C语言:有N个数从小到大的顺序存放在一个数组中,输入一个数,要求用折半查找法找出该数是数组中第几个数。如果不在数组中,打印“not found”。
/*有N个数从小到大的顺序存放在一个数组中,输入一个数,要求用折半查找法找出该数是数组中第几个数.如果不在数组中,打印"not found".*/#include<stdio ...
- c语言 有15个数按由大到小,C++ 有15个数按由大到小顺序存放在一个数组中,输入一个数,要求用折半查找法找出该数是数组中第几个元素的值。如果该数不在数组中,则输出“无此数”。...
有15个数按由大到小顺序存放在一个数组中,输入一个数,要求用折半查找法找出该数是数组中第几个元素的值.如果该数不在数组中,则输出"无此数". 以下是此题的[c++源代码],需要[c ...
- 找出一个二维数组中的鞍点
找出一个二维数组中的鞍点,即该位置上的元素在该行上最大,在该列上最小.也可能没有鞍点. 解题流程如下: 对每行进行遍历.先找到每行的最大值,然后再确定该最大值是否是所在列的最小值,若满足,则为鞍点,遍 ...
- 34. 在排序数组中查找元素的第一个和最后一个位置给你一个按照非递减顺序排列的整数数组 nums,和一个目标值 target。请你找出给定目标值在数组中的开始位置和结束位置。如果数组中不存在目标
34. 在排序数组中查找元素的第一个和最后一个位置 难度中等2012 给你一个按照非递减顺序排列的整数数组 nums,和一个目标值 target.请你找出给定目标值在数组中的开始位置和结束位置. 如果 ...
最新文章
- 爬虫python代码-python爬虫(附源码)
- crontab 执行时间与系统时间不一致
- CocoaPods版本升级
- 图像的灰度化以及二值图函数
- qt5python gui cookbook_Python GUI Programming Cookbook学习笔记
- docker+selenium grid解决node执行经常卡死
- Python学习笔记之Windows下通过pip安装Django详细介绍
- LeetCode-69 x的平方根
- 青县计算机学校,青县将建设新学校(中小学各一所)今年3月开工,明年即可完工!...
- 分布式对象存储解决方案
- 字符编码(GB 2312、GBK、UTF-8、UTF-16)
- Android 手机修改 WiFi MAC 地址
- win10如何切换计算机用户,Windows10系统下切换用户的多种技巧
- 2022高频经典前端面试题(html+css+js上篇,含答案)
- 二维平面上线段与直线位置关系的判定
- 考研不歧视双非的院校计算机专业,21考研,保护一志愿不歧视“双非”的30所学校,值得收藏!...
- PostgreSQL存储过程-批量新增周末到节假日
- scratch连接wedo2.0超详细教程(附资源)
- 如何在chrome浏览器设置夜间模式
- html调用一言api,纯 JavaScript 实现网站一言功能