初窥Maven之三:对List<SystemStatus>,以value值做降序排列

在Pom.xml里边添加两个依赖,

<dependency>
   <groupId>commons-collections</groupId>
    <artifactId>commons-collections</artifactId>
    <version>3.2.2</version>
</dependency>
<dependency>
    <groupId>commons-beanutils</groupId>
    <artifactId>commons-beanutils</artifactId>
    <version>1.9.3</version>
</dependency>

继承上一篇,Json先转化成List,再对其值进行降序操作,

package cs;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import java.util.Map;

import org.apache.commons.beanutils.BeanComparator;
import org.apache.commons.collections.ComparatorUtils;
import org.apache.commons.collections.comparators.ComparableComparator;
import org.apache.commons.collections.comparators.ComparatorChain;

import net.sf.json.JSONArray;

public class JsonToList {
    public static void main(String[] args) {

        /**
         * 创建一个json类字符串
         */
        String json = "[{\"id\":\"1\",\"name\":\"zhangsan\",\"value\":\"11\"},"
                + "{\"id\":\"2\",\"name\":\"lisi\",\"value\":\"22\"}," 
                + "{\"id\":\"3\",\"name\":\"wangwu\",\"value\":\"33\"}]";

        /**
         * Json转换成List<Systemstatus>
         */
        List<Systemstatus> list = (List<Systemstatus>)JSONArray.toList(JSONArray.fromObject(json),Systemstatus.class);

        /**
         * 输出
         */
        Systemstatus ss = null;
        for(int i = 0; i < list.size(); i++) {
            ss = list.get(i);
            System.out.println("id = " + ss.getId() + ",name = " + ss.getName() + ",value = " + ss.getValue());
        }

        //工具包 进行降序排序
        Comparator mycmp1 = ComparableComparator.getInstance();
        //逆序
        mycmp1 = ComparatorUtils.reversedComparator(mycmp1);
        ArrayList<Object> sortFields = new ArrayList<>();
        //主排序(第一排序)
        sortFields.add(new BeanComparator("value", mycmp1));
        // 创建一个排序链
        ComparatorChain multiSort = new ComparatorChain(sortFields);
        // 开始真正的排序,按照先主,后副的规则
        Collections.sort(list, multiSort);
        System.out.println("工具包降序排序后:");
        for(int i = 0; i < list.size(); i++) {
            ss = list.get(i);
            System.out.println("id = " + ss.getId() + ",name = " + ss.getName() + ",value = " + ss.getValue());
        }
    }
}

输出为:

id = 1,name = zhangsan,value = 11
id = 2,name = lisi,value = 22
工具包降序排序后:
id = 3,name = wangwu,value = 33
id = 2,name = lisi,value = 22

原微博:
java List实体排序
Json与对象、集合之间的转换

猜你喜欢

转载自blog.csdn.net/u010986518/article/details/80304634
今日推荐