zoukankan      html  css  js  c++  java
  • Java中List的排序方法

    方法一:实现Comparable接口

    package com.java.test;
    
    public class Person implements Comparable<Person> {
    
        private String name;
        private Integer age;
    
        public Person() {
        }
    
        public Person(String name, Integer age) {
            this.name = name;
            this.age = age;
        }
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public Integer getAge() {
            return age;
        }
    
        public void setAge(Integer age) {
            this.age = age;
        }
    
        @Override
        public int compareTo(Person o) {
            return age.compareTo(o.getAge());//正序
         //return o.getAge().compareTo(age);//倒序
    } }
    package com.java.test;
    
    import java.util.ArrayList;
    import java.util.Collections;
    import java.util.List;
    
    public class PersonTest {
    
        public static void main(String[] args) {
            List<Person> list = new ArrayList<Person>();
            list.add(new Person("E", 16));
            list.add(new Person("C", 14));
            list.add(new Person("A", 12));
            list.add(new Person("B", 13));
            list.add(new Person("D", 15));
            for (Person person : list) {
                System.out.println(person.getAge());
            }
            System.out.println("####################");
            Collections.sort(list);
            for (Person person : list) {
                System.out.println(person.getAge());
            }
    
        }
    }

    方法二:调用Collections.sort(List<T> list, Comparator<? super T> c),定义Comparator

    package com.java.test;
    
    public class Person {
    
        private String name;
        private Integer age;
    
        public Person() {
        }
    
        public Person(String name, Integer age) {
            this.name = name;
            this.age = age;
        }
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public Integer getAge() {
            return age;
        }
    
        public void setAge(Integer age) {
            this.age = age;
        }
    
    }
    package com.java.test;
    
    import java.util.ArrayList;
    import java.util.Collections;
    import java.util.Comparator;
    import java.util.List;
    
    public class PersonTest {
    
        public static void main(String[] args) {
            List<Person> list = new ArrayList<Person>();
            list.add(new Person("E", 16));
            list.add(new Person("C", 14));
            list.add(new Person("A", 12));
            list.add(new Person("B", 13));
            list.add(new Person("D", 15));
            for (Person person : list) {
                System.out.println(person.getAge());
            }
            System.out.println("####################");
            Collections.sort(list, new Comparator<Person>() {
                @Override
                public int compare(Person o1, Person o2) {
                    return o1.getAge().compareTo(o2.getAge());//正序
             //return o2.getAge().compareTo(o1.getAge());//倒序 } });
    for (Person person : list) { System.out.println(person.getAge()); } } }
  • 相关阅读:
    uitoolbar 圆角
    json
    MFC 控件使用笔记
    automake和autoconf使用介绍
    [译]C# Socket连接请求超时机制
    linux 环境变量的配置
    OK6410,修改调试串口,屏蔽调试输出,增加启动画面
    UML图各类符号含义
    图解UML类与类之间的六中关系
    C#综合揭秘——深入分析委托与事件
  • 原文地址:https://www.cnblogs.com/liaojie970/p/4806661.html
Copyright © 2011-2022 走看看