List<JSONObject> 按照JSONObject多个属性排序
来源:互联网 发布:wifi劫持软件下载 编辑:程序博客网 时间:2024/06/16 15:56
public static void main(String[] args) {
List<JSONObject> l=new ArrayList<JSONObject>();
for(int i=0;i<5;i++){
JSONObject jb=new JSONObject();
jb.put("name", "a");
jb.put("prize", 120+i);
jb.put("time", "2016-"+ i +"-08 12:21:51");
l.add(jb);
}
List<JSONObject> l2=new ArrayList<JSONObject>();
for(int i=0;i<5;i++){
JSONObject jb=new JSONObject();
jb.put("name", "b");
jb.put("prize", 122+i);
jb.put("time", "2017-"+ i +"-08 12:21:51");
l2.add(jb);
}
l.addAll(l2);
for(int i=0;i<l.size();i++){
System.out.println(l.get(i));
}
System.out.println("----------after sort------------");
dd(l);
for(int i=0;i<l.size();i++){
System.out.println(l.get(i));
}
}
public static void dd(List<JSONObject> l){
Collections.sort(l, new Comparator<JSONObject>() {
private static final String KEY_NAME = "prize";
private static final String KEY_NAME2 = "time";
@Override
public int compare(JSONObject a, JSONObject b) {
String valA_1 = new String();
String valB_1 = new String();
String valA_2 = new String();
String valB_2 = new String();
try {
valA_1 = a.getString(KEY_NAME);
valB_1 = b.getString(KEY_NAME);
valA_2 = a.getString(KEY_NAME2);
valB_2 = b.getString(KEY_NAME2);
} catch (JSONException e) {
// do something
}
int flag = valB_1.compareTo(valA_1);
if (flag == 0) {
return valB_2.compareTo(valA_2);
} else {
return flag;
}
}
});
}
}
--------------------------------------------------------------------------------
public class test4 {
public static void main(String[] args) {
String jsonString = "[{ \"orderId\": \"431\", \"installment\": \"9\" }, { \"orderId\": \"135\", \"installment\": \"9\" },{ \"orderId\": \"432\", \"installment\": \"9\" },{ \"orderId\": \"135\", \"installment\": \"8\" },{ \"orderId\": \"135\", \"installment\": \"2\" },{ \"orderId\": \"432\", \"installment\": \"5\" },{ \"orderId\": \"431\", \"installment\": \"3\" }]";
JSONArray jsonArray = JSONArray.fromObject(jsonString);
if (jsonArray != null) {
List<JSONObject> jsonList = new ArrayList<JSONObject>();
for (int i = 0; i < jsonArray.size(); i++) {
jsonList.add(jsonArray.getJSONObject(i));
}
// 重写排序方法,按照order by
// orderId,installment方式排序,确保同个订单orderId优先还期数installment靠前的
Collections.sort(jsonList, new Comparator<JSONObject>() {
private static final String KEY_NAME = "orderId";
private static final String KEY_NAME2 = "installment";
@Override
public int compare(JSONObject a, JSONObject b) {
String valA_1 = new String();
String valB_1 = new String();
String valA_2 = new String();
String valB_2 = new String();
try {
valA_1 = a.getString(KEY_NAME);
valB_1 = b.getString(KEY_NAME);
valA_2 = a.getString(KEY_NAME2);
valB_2 = b.getString(KEY_NAME2);
} catch (JSONException e) {
// do something
}
int flag = valA_1.compareTo(valB_1);
if (flag == 0) {
return valA_2.compareTo(valB_2);
} else {
return flag;
}
}
});
}
for(int i=0;i<jsonArray.size();i++){
System.out.println(jsonArray.get(i));
}
}
public static void sorrr() {
}
}
- List<JSONObject> 按照JSONObject多个属性排序
- JSONObject转List按照特定属性排序并生成对应排名
- java编程List按照多个属性进行排序
- JsonObject
- jsonobject
- JSONObject
- JSONObject
- JSONObject
- JSONObject
- JSONObject
- JSONObject
- JSONObject
- JSONObject
- JsonObject
- JSONObject
- JsonObject
- List<JSONObject>和JSONArray
- List按照多个字段进行排序
- jQuery Mobile学习笔记(八)——安装及离线
- Echarts 使用 markLine 画线
- 20170914 js模拟事件,什么click()都是伪模拟
- (四)jQuery css操作
- 临时放一下
- List<JSONObject> 按照JSONObject多个属性排序
- 在Linux上安装Mysql5.7
- angularjs-1.3代码学习-$parse
- golang返回值为interface{}的类型判断
- Log4Net中RollingLogFileAppender的配置详情
- webSocket
- jquery实现指定时间自动关闭消息框
- JAVASE
- 第十天:图像滤波