一、name升序 age升序
Java中Comparator Interface的排序是升序,即自然排序
.示例
List<JSONObject> data0o0o = new ArrayList<>();
JSONObject data0o0o1 = FASTJSON.newDoc();
data0o0o1.put("name", "张三");
data0o0o1.put("age", 10);
data0o0o1.put("sex", "男");
data0o0o.add(data0o0o1);
JSONObject data0o0o2 = FASTJSON.newDoc();
data0o0o2.put("name", "张三");
data0o0o2.put("age", 11);
data0o0o2.put("sex", "男");
data0o0o.add(data0o0o2);
JSONObject data0o0o3 = FASTJSON.newDoc();
data0o0o3.put("name", "李思");
data0o0o3.put("age", 10);
data0o0o3.put("sex", "男");
data0o0o.add(data0o0o3);
List<JSONObject> bufferData0o0o =data0o0o.stream().sorted(
Comparator.comparing(doc -> FASTJSON.parse2Doc(FASTJSON.toJSONString(doc)).getString("name"))
.thenComparing(doc -> FASTJSON.parse2Doc(FASTJSON.toJSONString(doc)).getIntValue("age"))
).collect(Collectors.toList());
System.out.println(bufferData0o0o);
.结果: [{"name":"张三","age":10,"sex":"男"}, {"name":"张三","age":11,"sex":"男"}, {"name":"李思","age":10,"sex":"男"}]
二、name升序 age降序
Java中Comparator Interface的reversed()方法返回一个比较器,该比较器强加此比较器的相反顺序。
如果您使用array的sort方法,并在应用反向方法后传递此比较器,则它将以相反的顺序对数组进行排序
.示例
List<JSONObject> data0o0o = new ArrayList<>();
JSONObject data0o0o1 = FASTJSON.newDoc();
data0o0o1.put("name", "张三");
data0o0o1.put("age", 10);
data0o0o1.put("sex", "男");
data0o0o.add(data0o0o1);
JSONObject data0o0o2 = FASTJSON.newDoc();
data0o0o2.put("name", "张三");
data0o0o2.put("age", 11);
data0o0o2.put("sex", "男");
data0o0o.add(data0o0o2);
JSONObject data0o0o3 = FASTJSON.newDoc();
data0o0o3.put("name", "李思");
data0o0o3.put("age", 10);
data0o0o3.put("sex", "男");
data0o0o.add(data0o0o3);
List<JSONObject> bufferData0o0o =data0o0o.stream().sorted(
Comparator.comparing(doc -> FASTJSON.parse2Doc(FASTJSON.toJSONString(doc)).getString("name"))
.thenComparing(Comparator.comparing(doc->FASTJSON.parse2Doc(FASTJSON.toJSONString(doc)).getIntValue("age")).reversed())
).collect(Collectors.toList());
System.out.println(bufferData0o0o);
.结果: [{"name":"张三","age":11,"sex":"男"}, {"name":"张三","age":10,"sex":"男"}, {"name":"李思","age":10,"sex":"男"}]