原文链接:https://blog.csdn.net/zlk252620068/article/details/88429636
1 public class CompareArray { 2 3 public static void main(String[] args) { 4 String[] a = {"a","b","c"}; 5 String[] b = {"a","b","c","d"}; 6 7 System.out.println(compareArray(a, b)); 8 System.out.println(compareArray(b, a)); 9 10 /** 11 * 找出a数组中不在b数组中的值 12 */ 13 String[] notInArray = notInArray(b,a); 14 if(notInArray != null && notInArray.length > 0){ 15 for(int i = 0; i < notInArray.length; i ++){ 16 System.out.println(notInArray[i]); 17 } 18 } 19 20 String[] c = {"a","d"}; 21 String[] d = {"a","e","f"}; 22 /** 23 * 找出的是d中不在c中的字符串,输出,e/f 24 */ 25 String[] notInArray2 = notInArray(c,d); 26 if(notInArray2 != null && notInArray2.length > 0){ 27 for(int i = 0; i < notInArray2.length; i ++){ 28 System.out.println(notInArray2[i]); 29 } 30 } 31 /** 32 * 实际业务场景 33 * 找出新选择的人员不在已发送的人员中的人 34 */ 35 String[] n = {"1","2","3"}; 36 String[] o = {"1","4","5"}; 37 String[] notInArray3 = notInArray(o, n); 38 if(notInArray3 != null && notInArray3.length > 0){ 39 for (String string : notInArray3) { 40 System.out.println(string); 41 } 42 } 43 44 } 45 /** 46 * 比较两个数组是否相等 47 * @param arr1 48 * @param arr2 49 * @return 50 */ 51 public static boolean compareArray(String[] arr1, String[] arr2){ 52 53 if(arr1 == arr2){ 54 return true; 55 } 56 if(arr1.length > 0 && arr2.length > 0 && arr1.length == arr2.length){ 57 Map<String,Object> map = new HashMap<String, Object>(); 58 boolean flag = true; 59 for(int i = 0; i < arr1.length; i ++){ 60 map.put(arr1[i], i); 61 } 62 for(int i = 0; i < arr2.length; i ++){ 63 if(!map.containsKey(arr2[i])){ 64 flag = false; 65 break; 66 } 67 } 68 return flag; 69 } 70 return false; 71 } 72 /** 73 * 找出arr2中不在arr1中的字符串 74 * @param arr1 key 75 * @param arr2 76 * @return 77 */ 78 public static String[] notInArray(String[] arr1,String[] arr2){ 79 String[] res = null; 80 if(arr1 != arr2 && arr1.length > 0 && arr2.length > 0){ 81 Map<String,Object> map = new HashMap<String, Object>(); 82 List<String> list = new ArrayList<String>(); 83 for(int i = 0; i < arr1.length; i ++){ 84 map.put(arr1[i], i); 85 } 86 for(int i = 0; i < arr2.length; i ++){ 87 if(!map.containsKey(arr2[i])){ 88 list.add(arr2[i]); 89 } 90 } 91 if(list.size() > 0){ 92 res = new String[list.size()]; 93 list.toArray(res); 94 return res; 95 } 96 } 97 return res; 98 } 99 } 100 ———————————————— 101 版权声明:本文为CSDN博主「潭影空人心」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。 102 原文链接:https://blog.csdn.net/zlk252620068/article/details/88429636
原文:https://www.cnblogs.com/dd23969781/p/11587604.html