不考慮順序的情況下,對比兩個陣列是否相同
阿新 • • 發佈:2018-12-19
先說我遇到的需求 不考慮順序的情況下對比兩個json陣列字串是否相同,json字串是一個數組,程式碼和json字串結構如下:
public static void main(String[] args) throws IOException { //json字串 String json1 = "[{\"sdd_code\":\"123456\",\"qutity\":\"2\"},{\"sdd_code\":\"789456\",\"qutity\":\"1\"}]"; String json2 = "[{\"sdd_code\":\"789456\",\"qutity\":\"1\"},{\"sdd_code\":\"123456\",\"qutity\":\"2\"}]"; //先用fastjson把json字串轉成陣列 JSONArray jsonArray1 = JSONArray.parseArray(json1); JSONArray jsonArray2 = JSONArray.parseArray(json2); //對比陣列的長度是否相同 if (jsonArray1.size() == jsonArray2.size()){ //不考慮順序的情況下對比兩個陣列是否相同 if(jsonArray1.containsAll(jsonArray2)){ System.out.println("相同"); }else { System.out.println("不相同"); } }else { System.out.println("不相同"); } }