JavaEE比较两个数组
public class CompareArray {
public static void main(String[] args) {
String[] a = {"a","b","c"};
String[] b = {"a","b","c","d"};
System.out.println(compareArray(a, b));
System.out.println(compareArray(b, a));
/**
* 找出a数组中不在b数组中的值
*/
String[] notInArray = notInArray(b,a);
if(notInArray != null && notInArray.length > 0){
for(int i = 0; i < notInArray.length; i ++){
System.out.println(notInArray[i]);
}
}
String[] c = {"a","d"};
String[] d = {"a","e","f"};
/**
* 找出的是d中不在c中的字符串,输出,e/f
*/
String[] notInArray2 = notInArray(c,d);
if(notInArray2 != null && notInArray2.length > 0){
for(int i = 0; i < notInArray2.length; i ++){
System.out.println(notInArray2[i]);
}
}
/**
* 实际业务场景
* 找出新选择的人员不在已发送的人员中的人
*/
String[] n = {"1","2","3"};
String[] o = {"1","4","5"};
String[] notInArray3 = notInArray(o, n);
if(notInArray3 != null && notInArray3.length > 0){
for (String string : notInArray3) {
System.out.println(string);
}
}
}
/**
* 比较两个数组是否相等
* @param arr1
* @param arr2
* @return
*/
public static boolean compareArray(String[] arr1, String[] arr2){
if(arr1 == arr2){
return true;
}
if(arr1.length > 0 && arr2.length > 0 && arr1.length == arr2.length){
Map<String,Object> map = new HashMap<String, Object>();
boolean flag = true;
for(int i = 0; i < arr1.length; i ++){
map.put(arr1[i], i);
}
for(int i = 0; i < arr2.length; i ++){
if(!map.containsKey(arr2[i])){
flag = false;
break;
}
}
return flag;
}
return false;
}
/**
* 找出arr2中不在arr1中的字符串
* @param arr1 key
* @param arr2
* @return
*/
public static String[] notInArray(String[] arr1,String[] arr2){
String[] res = null;
if(arr1 != arr2 && arr1.length > 0 && arr2.length > 0){
Map<String,Object> map = new HashMap<String, Object>();
List<String> list = new ArrayList<String>();
for(int i = 0; i < arr1.length; i ++){
map.put(arr1[i], i);
}
for(int i = 0; i < arr2.length; i ++){
if(!map.containsKey(arr2[i])){
list.add(arr2[i]);
}
}
if(list.size() > 0){
res = new String[list.size()];
list.toArray(res);
return res;
}
}
return res;
}
}
相关文章
- 最大子数组 && 最大子矩阵
- java数组类Arrays:比较,填充,排序
- 用谓词在数组中取得符合条件的元素
- Java实现 LeetCode 705 设计哈希集合(使用数组保存有没有被用过)
- 【数组&双指针】leetcode 283. 移动零【简单】
- LeetCode(4):两个排序数组的中位数
- byte数组怎么存放到Json中传递
- 67. 数字在排序数组中出现的次数
- 求两个数组的交集
- Leetcode1122. 数组的相对排序
- c++数组初始化‘0’
- 算法--找出数组中两个只出现一次的数字
- Android使用应用程序资源(、颜色数组、尺寸、弦、布尔、整型)
- 数组与链表增删改查效率比较
- 一维动态规划——字符串,可以使用dfs+cache,也可以改写为dp数组
- Shell 脚本将字符串转换为数组