您的位置首页百科问答

如何实现对ArrayList排序 sort

如何实现对ArrayList排序 sort

的有关信息介绍如下:

如何实现对ArrayList排序 sort

package com.collection;import java.util.ArrayList;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 studentList = new ArrayList();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;return s1.getAge().compareTo(s2.getAge());// 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