程序返回数据的时候经常要求按照某个字段排序,在sql中可以用order by排序,在程序中可以用sort来排序,今天就简单介绍一下。

方法1:
res.sort(Comparator.comparing(obj-((JSONObject)obj).getString("rr")));
上面的res就是JSONArray数组,中间的rr就是要排序的字段。
但是很遗憾,我使用这个就报错。然后使用了下面这种方法。
方法2:
List<JSONObject> list = JSONArray.parseArray(res.toJSONString(), JSONObject.class);
list.sort((o1, o2) -> {
    double diff = Double.parseDouble(o1.get("rr").toString()) - Double.parseDouble(o2.get("rr").toString());
    if (diff > 0) {
        return -1;
    } else if (diff < 0) {
        return 1;
    }
    return 0;
});

上面这种方法就能按照JSONArray中的某一个字段进行排序。