比较取得两个字符串数组中相同元素和不同元素
来源:互联网 发布:如何做一名网络写手 编辑:程序博客网 时间:2024/05/21 22:46
思路:
1.首先将两个数组A、B排序(递增)
2.分别从A和B中各取出一元素a,b,对a和b进行比 较:
1) 如果a与b相等,则将a或b存入一指定集合中 相同的
2)如果a小于b,则继续取A的下一元素,再与b比 较
将a的元素放入一个新的集合中,为A与B不同的元素
3) 如果a大于b,则取B的下一个元素,与a进行比较
将b的元素放入一个新的集合中,为B与A不同的元素
3.反复进行步骤2,直到A或B的元素都比较完
4.若两个数组长度不一致,则遍历获取较长数组的未遍历部分,放入其对应集合中,该集合为该数组独自拥有的不同元素的集合
5.将集合存放近map中,返回map
public Map<String,List<String>> getCompareElement(String[] strArr1,String[] strArr2) { Map<String,List<String>> map = new HashMap<String, List<String>>(); if(strArr1 == null || strArr2 == null) { return null; } Arrays.sort(strArr1); Arrays.sort(strArr2); List<String> sameList = new ArrayList(); List<String> strArr1Def = new ArrayList(); List<String> strArr2Def = new ArrayList(); 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]) ) { sameList.add(strArr1[k]); k++; j++; } continue; } else if(strArr1[k].compareTo(strArr2[j])<0){ strArr1Def.add(strArr1[k]); k++; } else { strArr2Def.add(strArr2[j]); j++; } } if(k<strArr1.length && j==strArr2.length){ for(int i = k;i<strArr1.length ;i++){ strArr1Def.add(strArr1[i]); } } if(k==strArr1.length && j<strArr2.length){ for(int i = j;i<strArr2.length ;i++){ strArr2Def.add(strArr2[i]); } } map.put("sameList", sameList); map.put("strArr1Def", strArr1Def); map.put("strArr2Def", strArr2Def); return map; }
阅读全文
0 0
- 比较取得两个字符串数组中相同元素和不同元素
- 判断一个字符串数组中相同和不同的元素
- 取得两个集合中不同元素(去除两个集合中的相同元素)
- 有两等长数组A,B,所含元素相同,但顺序不同,只能取得A数组某值和B数组某值进行比较,比较结果为大于,小于,等于,但是不能取得同一数组A或者B中两个数进行比较,也不能取得某数组中的某个值
- iOS小问题--使用NSPredicate比较两个数组中相同(不同)的元素
- 比较两个数组中相同元素并打印出来
- JAVA两个数组间元素的比较(找出相同或者不同元素)
- JAVA两个数组间元素的比较(找出相同或者不同元素)
- 取出两个字符串数组的相同元素
- PHP分割两个数组的相同元素和不同元素的两种方法
- 比较两个数组获得不同元素
- 比较两个数组元素是否相同,顺序可以不同,维数必须一样
- 两个数组中找出相同的元素
- 找出两个数组中相同的元素
- jquery判断两个数组中相同元素
- 2个数组中遍历相同元素或不同元素
- 比较两个文档中元素的不同
- 两个数组元素相同,顺序不同,进行正确匹配
- Android新特性介绍,ConstraintLayout完全解析
- 如何使linux用户下次登录强制修改密码
- IEEE 2017视频
- Hibernate_day01
- [poj 3321]:Apple Tree(树状数组/线段树 和dfs序)
- 比较取得两个字符串数组中相同元素和不同元素
- 安装VMware及新建虚拟机
- 【分数规划总结】周测图论1 环 & CODEVS 1183 泥泞的道路
- 【C# / 算法】输出任意阶回旋矩阵
- android 常见分辨率(mdpi、hdpi 、xhdpi、xxhdpi )及屏幕适配注意事项
- 汇编语言: 逆序输出字符串“BASED ADDRESSING”
- android monkey真机测试
- 源代码安全解决方案,信息安全网络安全
- opencv之图像拼接