Java 比较两个数组是否相同或者存在数组包含关系 | 您所在的位置:网站首页 › java判断数组中是不是有某一个元素 › Java 比较两个数组是否相同或者存在数组包含关系 |
业务背景:比较两个数组元素是否相同,或者数组A的元素是否包含数组B 方法1:使用jdk方法 public static void main(String[] args) { String [] array1 = {"1","2","3","4"}; String [] array2 = {"3","2","1"}; if(array1.length !=array2.length){ System.out.println("两个数组中的元素值不相同"); } Arrays.sort(array1); Arrays.sort(array2); if (Arrays.equals(array1, array2)) { System.out.println("两个数组中的元素值相同"); } else { System.out.println("两个数组中的元素值不相同"); } for(String item:array1){ if(!Arrays.asList(array2).contains(item)){ System.out.println("数组array2不包含array1"); } } }方法2:利用hashmap 循环数组1进行key占位,当循环数组2时,get(key)是否存在,不存在则不相等,不包含关系,时间复杂度为O(n) public static void main(String[] args) { String [] array1 = {"1","2","3"}; String [] array2 = {"3","2","1"}; boolean result=checkArraysIsEqual(array1,array2); if(!result){ System.out.println("两个数组中的元素值不相同"); } } private static boolean checkArraysIsEqual(String[] array1, String[] array2) { Map map1=new HashMap(); for(String item1:array2){ map1.put(item1,1); } for(String item2:array1){ Integer result = map1.get(item2); if(result ==null){ return false; } continue; } return true; } |
CopyRight 2018-2019 实验室设备网 版权所有 |