Java集合排序|集合对象排序|根据集合中对象的指定属性进行排序;

    技术2023-09-27  80

    package cn.sort; import java.util.ArrayList; import java.util.Collections; import java.util.List; /** * 集合排序; * * 首先先看一下关于集合的排序Demo; * * 先创建一个自己的测试类; * @author Administrator * */ public class SortTest { public static void main(String[] args) { // 实例化一个指定类型存储的List集合; List<String> list = new ArrayList<String>(); // 集合数据装载; list.add("aaa"); list.add("ccc"); list.add("bbb"); // 利用Collections工具类的sort()进行升序; Collections.sort(list); // 控制台数据打印; System.out.println(list); } } package cn.sort; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.List; /** * * 集合对象排序|根据集合中对象的指定属性进行排序; * * 下面整理一下关于集合对象的排序规则; * * 利用实现Comparator来进行排序; * * 首先还是和以往一样,创建一个自己的测试类; * @author Administrator * */ public class CollectionsSort { /** * Java主函数|入口; * @param args */ public static void main(String[] args) { /** * 实例化一个指定对象存储的List集合; */ List<Student> list = new ArrayList<Student>(); // 对象数据装载; Student b = new Student("BBB","Y",32); Student c = new Student("CCC","x",33); Student a = new Student("AAA","Y",31); // 集合数据装载; list.add(a); list.add(b); list.add(c); // 调用排序规则; sortObj(list); //重新打印排序后的集合数据; for(Student people : list) { // 控制台数据打印; System.out.println(people.getAge()); } } /** * 封装排序函数|方法; * @param list */ public static void sortObj(List<Student> list) { /** * 自定义排序规则; * * 利用Collections工具类的sort()方法进行重写排序规则; */ Collections.sort(list, new Comparator<Student>() { /** * 重写排序规则; * @param a * @param b * @return */ @Override public int compare(Student a, Student b) { /** * 自定义排序规则; * * 如果没有明确具体的排序内容,可以直接进行对象排序; * Eg: a.compareTo(b); * * 如果有明确的需求说要对某个集合中的对象按照指定属性进行排序, * 则可以按照以下方式进行自定义排序; */ String one = a.getSex(); String two = b.getSex(); // return two.compareTo(one); return one.compareTo(two); } }); } } /** * 封装自定义排序规则; * * 下面是将排序规则封装进入自己特定的工具类中, * 可以根据不同的需求封装不同的函数|方法; * @author Administrator * */ class sortUtils implements Comparator { @Override public int compare(Object o1, Object o2) { String a = (String) o1; String b = (String) o2; return -a.compareTo(b); } } /** * 临时创建一个Entity测试类; * * @author Administrator * */ class Student { // 初始化私有属性; private String name; private String sex; private int age; /** * 由于申明了有参构造,故而 * 在这里需要重新申明无参构造器; * * 在默认的情况下无参构造器就存在,只是当创建了有参构造器之后便覆盖了无参构造器; * 所以需要自己重现有参构造器; */ public Student() {} /** * 申明有参构造器; * * 根据指定顺序的构造器进行对象初始化; * @param name * @param sex * @param age */ public Student(String name, String sex, int age) { this.name = name; this.sex = sex; this.age = age; } /** * Get/Set; * @return */ public String getName() { return name; } public void setName(String name) { this.name = name; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } } /** * 数据排序. * @param platformList */ public static void sortPlatformList(List<BePlatform> platformList) { Collections.sort(platformList, new Comparator<BePlatform>() { @Override public int compare(BePlatform p1, BePlatform p2) { return p1.getStartTime().compareTo(p2.getStartTime()); } }); }

     

    Processed: 0.016, SQL: 9