美文网首页
List排序

List排序
作者: 栖夕栖兮 | 来源:发表于2020-07-16 10:47 被阅读0次
  1. List排序
  2. java 8 新特性随记
  3. List按对象某属性排序
  4. Collections工具类
  5. Java排序
  6. Java 8中的list排序
  7. android list.contains函数的使用 以及 eq
  8. List、List、List区别
  9. Java集合的数据结构
  10. java8的List排序写法
  11. List<Object>排序

    需求是根据一个对象的list中的某个字段的值排序,比如根据列表中人的年龄排序:

    在实体类中继承Comparable接口并重写compareTo()方法,方法里是自己需求比较的函数,可以根据自己的需求去写。

    package com.example.Test;

    /**

    • @author Administrator

    */
    public class TestObj implements Comparable<TestObj> {

    public int id;
    
    public String name;
    
    public int age;
    
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    
    public int getAge() {
        return age;
    }
    
    public void setAge(int age) {
        this.age = age;
    }
    
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    
    @Override
    public String toString() {
        return "TestObj [id=" + id + ", name=" + name + ", age=" + age + "]";
    }
    @Override
    public int compareTo(TestObj o) {
        // TODO Auto-generated method stub
        return String.valueOf(this.getAge()).compareTo(String.valueOf(o.getAge()));
    }
    

    }

    然后调用Collections.sort(list)进行排序

    @Test
    public void testListSort() {
    List<TestObj> list = new ArrayList<>();

         TestObj obj1 = new TestObj();
         obj1.setId(1);
         obj1.setName("张三");
         obj1.setAge(16);
         
         TestObj obj2 = new TestObj();
         obj2.setId(2);
         obj2.setName("李四");
         obj2.setAge(20);
         
         TestObj obj3 = new TestObj();
         obj3.setId(3);
         obj3.setName("王五");
         obj3.setAge(12);
         
         TestObj obj4 = new TestObj();
         obj4.setId(4);
         obj4.setName("赵六");
         obj4.setAge(24);
         
         list.add(obj1);
         list.add(obj2);
         list.add(obj3);
         list.add(obj4);
         
         Collections.sort(list);
         for (TestObj testObj : list) {
            System.out.println(testObj.toString());
        }
     }
    

    输出结果

    TestObj [id=3, name=王五, age=12]
    TestObj [id=1, name=张三, age=16]
    TestObj [id=2, name=李四, age=20]
    TestObj [id=4, name=赵六, age=24]

    相关文章