首页 > 学院 > 开发设计 > 正文

Java 中Comparator 的使用,实现集合排序

2019-11-15 00:22:24
字体:
来源:转载
供稿:网友
java 中Comparator 的使用,实现集合排序

目标:实现对Person 对象的年龄,从小到大排序

1、实现排序

 1 package com.app; 2 3 import java.util.ArrayList; 4 import java.util.Collections; 5 import java.util.Comparator; 6 import java.util.List; 7  8 public class A1 { 9 10     public static void main(String[] args) {11         List<Person> list = getData() ;12         //排序13         Collections.sort( list , comparator );14         15         for (Person person : list) {16             System.out.PRintln("person   " + person.getName() + "  " + person.getAge() );17         }18         19     }20 21     /**22      * 年龄按从小到大排序23      */24     static Comparator<Person> comparator = new Comparator<Person>() {25         @Override26         public int compare(Person p1 , Person p2 ) {27             if( p1.getAge() > p2.getAge() ){28               return 1 ;  //正数29             }else if ( p1.getAge() < p2.getAge()) {30                 return -1 ;  //负数31             }else {32                 return 0;  //相等为033             }34         }35     };36 37     static private List<Person> getData() {38         List<Person> list = new ArrayList<>() ;39 40         Person p1 = new Person() ;41         p1.setAge( 10 ); 42         p1.setName( "p1" );43 44         Person p2 = new Person() ;45         p2.setAge( 30 ); 46         p2.setName( "p2" );47 48         Person p3 = new Person() ;49         p3.setAge( 20 ); 50         p3.setName( "p3" );51 52         Person p4 = new Person() ;53         p4.setAge( 15 ); 54         p4.setName( "p4" );55 56         list.add( p1 ) ;57         list.add( p2 ) ;58         list.add( p3 ) ;59         list.add( p4 ) ;60 61         return list ;62     }63 }

2、创建Person类

package com.app;public class Person {    private int age ;    private String name ;        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;    }}

3、运行结果(实现对年龄的排序)

person p1 10 person p4 15 person p3 20 person p2 30


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表