
大家好,小金来为大家解答以上的问题。arraylist排序的三种算法,arraylist排序这个很多人还不知道,现在让我们一起来看看吧!
1、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现在java8帮你封装了一把,可以不用Colltion的sort方法啦,很简单 list.stream.sorted(); 就可以直接排序啦。
2、对于基本类型的数据 若是一个对象的集合,比如List list这类的集合。
本文到此分享完毕,希望对大家有所帮助。