JsonArray快排

/**

* 对json数组排序,

*

* @param jsonArr

* @param sortKey 排序关键字

* @param is_desc is_desc-false升序列  is_desc-true降序 (排序字段为字符串)

* @return

*/

private StringjsonArraySort(JSONArray jsonArr, final String sortKey, final boolean is_desc) {

//存放排序结果json数组

    JSONArray sortedJsonArray =new JSONArray();

    //用于排序的list

    List jsonValues =new ArrayList();

    //将参数json数组每一项取出,放入list

    for (int i =0; i < jsonArr.size(); i++) {

jsonValues.add(jsonArr.getJSONObject(i));

    }

//快速排序,重写compare方法,完成按指定字段比较,完成排序

    Collections.sort(jsonValues, new Comparator() {

      private final StringKEY_NAME =sortKey;

           //重写compare方法

          @Override

               public int compare(JSONObject a, JSONObject b) {

                String valA =new String();

                 String valB =new String();

            try {

                 valA = a.getString(KEY_NAME);

                 valB = b.getString(KEY_NAME);

            }catch (JSONException e) {

                e.printStackTrace();

            }

      //是升序还是降序

            if (is_desc) {

                    return -valA.compareTo(valB);

            }else {

                   return -valB.compareTo(valA);

            }

}

});

    //将排序后结果放入结果jsonArray

    for (int i =0; i < jsonArr.size(); i++) {

          sortedJsonArray.add(jsonValues.get(i));

    }

  return sortedJsonArray.toString();

}

你可能感兴趣的:(JsonArray快排)