在java开发中有时候我们需要对List集合中的元素按照一定的规则进行排序,比如说有个Person的集合,我们要根据Person的age属性进行排序输出,这就需要用到Java中提供的对集合进行操作的工具类Collections,其中的sort方法,大家看虾米哥的例子如下:
1.Person类:
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | package www.itxm.cn; public class Person { private String id; private String name; private int age; public Person(String id, String name, int age) { super (); this .id = id; this .name = name; this .age = age; } public String getId() { return id; } public void setId(String id) { this .id = id; } public String getName() { return name; } public void setName(String name) { this .name = name; } public int getAge() { return age; } public void setAge( int age) { this .age = age; } } |
2.排序类:
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | package www.itxm.cn; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.List; public class PersonSort { public static void main(String[] args) { List<Person> plist = new ArrayList<Person>(); //创建3个Person对象,年龄分别是32、20、25,并将他们依次放入List中 Person p1 = new Person( "0001" , "zhangsan" , 32 ); Person p2 = new Person( "0002" , "lisi" , 20 ); Person p3 = new Person( "0003" , "wangwu" , 25 ); plist.add(p1); plist.add(p2); plist.add(p3); System.out.println( "排序前的结果:" +plist); Collections.sort(plist, new Comparator<Person>(){ /* * int compare(Person p1, Person p2) 返回一个基本类型的整型, * 返回负数表示:p1 小于p2, * 返回0 表示:p1和p2相等, * 返回正数表示:p1大于p2 */ public int compare(Person p1, Person p2) { //按照Person的年龄进行升序排列 if (p1.getAge() > p2.getAge()){ return 1 ; } if (p1.getAge() == p2.getAge()){ return 0 ; } return - 1 ; } }); System.out.println( "排序后的结果:" +plist); } } |
3.总结:
本排序最核心的Collections工具类的使用,牢牢掌握,遇到排序的时候不会手忙脚乱。
4.文章转载地址:https://www.cnblogs.com/wangyayun/p/7852075.html