java给对象按照字符串属性进行排序

Posted 野生java研究僧

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java给对象按照字符串属性进行排序相关的知识,希望对你有一定的参考价值。

在java中对象进行排序,排序的属性是string,我们只需要实现Comparator接口,然后实现比较的方式。

public class StringSort 
    public static void main(String[] args) 

        test1();

    

    // 方式1:
    public static void test1()
        JSONObject jsonObject = JSONObject.parseObject("\\"result\\":[\\"id\\":\\"A1001\\",\\"text\\":\\"程序员\\", \\"id\\":\\"G1003\\",\\"text\\":\\"建筑师\\", \\"id\\":\\"D1005\\",\\"text\\":\\"设计师\\", \\"id\\":\\"G1009\\",\\"text\\":\\"自由职业\\", \\"id\\":\\"E2007\\",\\"text\\":\\"学生\\", \\"id\\":\\"C1009\\",\\"text\\":\\"教师\\", \\"id\\":\\"A1002\\",\\"text\\":\\"医生\\", \\"id\\":\\"B1005\\",\\"text\\":\\"律师\\", \\"id\\":\\"F2009\\",\\"text\\":\\"架构师\\"]");
        List<JSONObject> list = JSONArray.parseArray(jsonObject.getString("result"), JSONObject.class);

        list.forEach(System.out::println);

        Collections.sort(list, new Comparator<JSONObject>() 
            @Override
            public int compare(JSONObject o1, JSONObject o2) 
                 return  o1.getString("id").compareTo(o2.getString("id") ); // 升序排列
//                return  - o1.getString("id").compareTo(o2.getString("id") ); // 降序排列
            
        );

        System.out.println("--------------排序后--------------------");

        list.forEach(System.out::println);
    

    // 方式2:
    public  static void test2()
        JSONObject jsonObject = JSONObject.parseObject("\\"result\\":[\\"id\\":\\"A1001\\",\\"text\\":\\"程序员\\", \\"id\\":\\"G1003\\",\\"text\\":\\"建筑师\\", \\"id\\":\\"D1005\\",\\"text\\":\\"设计师\\", \\"id\\":\\"G1009\\",\\"text\\":\\"自由职业\\", \\"id\\":\\"E2007\\",\\"text\\":\\"学生\\", \\"id\\":\\"C1009\\",\\"text\\":\\"教师\\", \\"id\\":\\"A1002\\",\\"text\\":\\"医生\\", \\"id\\":\\"B1005\\",\\"text\\":\\"律师\\", \\"id\\":\\"F2009\\",\\"text\\":\\"架构师\\"]");
        List<JSONObject> list = JSONArray.parseArray(jsonObject.getString("result"), JSONObject.class);

        list.forEach(System.out::println);

        Collections.sort(list, (o1, o2) -> 
            // return   o1.getString("id").compareTo(o2.getString("id") ); // 升序排列
            return  - o1.getString("id").compareTo(o2.getString("id") ); // 降序排列
        );

        System.out.println("--------------排序后--------------------");

        list.forEach(System.out::println);
    

    // 方式3:
    public  static void test3()
        JSONObject jsonObject = JSONObject.parseObject("\\"result\\":[\\"id\\":\\"A1001\\",\\"text\\":\\"程序员\\", \\"id\\":\\"G1003\\",\\"text\\":\\"建筑师\\", \\"id\\":\\"D1005\\",\\"text\\":\\"设计师\\", \\"id\\":\\"G1009\\",\\"text\\":\\"自由职业\\", \\"id\\":\\"E2007\\",\\"text\\":\\"学生\\", \\"id\\":\\"C1009\\",\\"text\\":\\"教师\\", \\"id\\":\\"A1002\\",\\"text\\":\\"医生\\", \\"id\\":\\"B1005\\",\\"text\\":\\"律师\\", \\"id\\":\\"F2009\\",\\"text\\":\\"架构师\\"]");
        List<JSONObject> list = JSONArray.parseArray(jsonObject.getString("result"), JSONObject.class);

        list.forEach(System.out::println);

        Collections.sort(list, Comparator.comparing(o -> o.getString("id")));

        System.out.println("--------------排序后--------------------");

        list.forEach(System.out::println);
    



以上是关于java给对象按照字符串属性进行排序的主要内容,如果未能解决你的问题,请参考以下文章

java ArrayList按照某个属性升序排序

java arraylist 按照对象的属性排序

JavaScript对数组对象进行升序排列

java如何对ArrayList中对象按照该对象某属性排序

JAVA中Comparator的使用

SqlSever基础 oder asc 排序,给数据库中的表按照指定的列中内容进行升序排列