1. 程式人生 > >不考慮順序的情況下,對比兩個陣列是否相同

不考慮順序的情況下,對比兩個陣列是否相同

先說我遇到的需求   不考慮順序的情況下對比兩個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("不相同");
        }
    }