如何实现对ArrayList排序 sort()

原文地址为:

package com.collection; import java.util.; import java.util.Collections; import java.util.Comparator; import java.util.List; public class Test { public static void main(String[] args) { Student zlj = new Student("丁晓宇", 21); Student dxy = new Student("赵四", 22); Student cjc = new Student("张三", 11); Student lgc = new Student("刘武", 19); List<Student> studentList = new ArrayList<Student>(); studentList.add(zlj); studentList.add(dxy); studentList.add(cjc); studentList.add(lgc); System.out.println("按年龄升序:"); Collections.sort(studentList, new SortByAge()); for (Student student : studentList) { System.out.println(student.getName() + " / " + student.getAge()); } System.out.println(); System.out.println("按姓名:"); Collections.sort(studentList, new SortByName()); for (Student student : studentList) { System.out.println(student.getName() + " / " + student.getAge()); } } } class SortByAge implements Comparator { public int compare(Object o1, Object o2) { Student s1 = (Student) o1; Student s2 = (Student) o2; if (s1.getAge() > s2.getAge()) return 1; return -1; } } class SortByName implements Comparator { public int compare(Object o1, Object o2) { Student s1 = (Student) o1; Student s2 = (Student) o2; return s1.getName().compareTo(s2.getName()); } }

输出结果:

按年龄升序: 张三 / 11 刘武 / 19 丁晓宇 / 21 赵四 / 22 按姓名排序: 丁晓宇 / 21 刘武 / 19 张三 / 11 赵四 / 22


转载请注明本文地址:
经验分享 程序员 微信小程序 职场和发展