首页 > 编程语言 > 详细

Java比较两个数组

时间:2019-09-25 22:36:30      阅读:104      评论:0      收藏:0      [点我收藏+]

原文链接: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

 

Java比较两个数组

原文:https://www.cnblogs.com/dd23969781/p/11587604.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!