zoukankan      html  css  js  c++  java
  • 用 lambda 表达式 对 List 进行排序

            List<Integer> list = new ArrayList<>();
            list.add(4);
            list.add(6);
            list.add(3);
            list.add(5);
            list.add(1);
            list.add(2);
            Iterator<Integer> iterator = list.iterator();
            System.out.println("排序前:");
            while(iterator.hasNext()) {
                System.out.print(iterator.next()+" ");
            }
            list.sort((a, b) -> a - b);       //排序
            Iterator<Integer> iteratorSort = list.iterator();
            System.out.println("
    "+"排序后:");
            while(iteratorSort.hasNext()) {
                System.out.print(iteratorSort.next()+" ");
            }

    输出结果:

    排序前:
    4 6 3 5 1 2 
    排序后:
    1 2 3 4 5 6 

    下面用实体类里面的属性进行排序:

    Person类:

    public class Person {
        
        private String name;
        
        private Integer age;
        
        private Integer score;
        
    
        public Person(String name, Integer age, Integer score) {
            super();
            this.name = name;
            this.age = age;
            this.score = score;
        }
    
        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;
        }
    
        public Integer getScore() {
            return score;
        }
    
        public void setScore(Integer score) {
            this.score = score;
        }
    
        @Override
        public String toString() {
            return "Person [name=" + name + ", age=" + age + ", score=" + score + "]";
        }
        
    
    }

    测试一下:

            List<Person> list = new ArrayList<>();
            list.add(new Person("lc",22,100));
            list.add(new Person("ly",16,70));
            list.add(new Person("yyz",20,60));
            list.add(new Person("mxy",20,80));
            list.add(new Person("lxy",15,90));
            list.sort((a, b) -> a.getAge() - b.getAge());   //按年龄排序
            System.out.println("按年龄排序:");
            Iterator<Person> iterator_age = list.iterator(); 
            while(iterator_age.hasNext()) {
                System.out.println(iterator_age.next()+" ");
            }
            
            list.sort((a, b) -> a.getScore() - b.getScore());
            System.out.println("按分数排序:");
            Iterator<Person> iterator_score = list.iterator();
            while(iterator_score.hasNext()) {
                System.out.println(iterator_score.next()+" ");
            }

    输出结果:

    按年龄排序:
    Person [name=lxy, age=15, score=90] 
    Person [name=ly, age=16, score=70] 
    Person [name=yyz, age=20, score=60] 
    Person [name=mxy, age=20, score=80] 
    Person [name=lc, age=22, score=100] 
    按分数排序:
    Person [name=yyz, age=20, score=60] 
    Person [name=ly, age=16, score=70] 
    Person [name=mxy, age=20, score=80] 
    Person [name=lxy, age=15, score=90] 
    Person [name=lc, age=22, score=100] 
  • 相关阅读:
    国内代码托管平台(Git和SVN)
    搭建网络svn实战
    2016你一定要试试这8款原型设计工具
    Linux下查看用户列表
    详解Oracle DELETE和TRUNCATE 的区别
    Oracle 用户表空间查看、修改大小、设置自增长等
    win7电脑定时开机设置方法
    weblogic负载分发
    怎样实现一个数据库关系系统?
    选择数据库管理系统(DBMS)时主要考虑的因素
  • 原文地址:https://www.cnblogs.com/nefu-Lc/p/10066547.html
Copyright © 2011-2022 走看看