轉的,備忘下,Arraylist排序

java中的ArrayList需要通過collections類的sort方法來進行排序

如果想自定義排序方式則需要有類來實現Comparator接口並重寫compare方法

調用sort方法時將ArrayList對象與實現Commparator接口的類的對象作爲參數

 

示例:

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<Student> studentList = new ArrayList<Student>();
  studentList.add(zlj);
  studentList.add(dxy);
  studentList.add(cjc);
  studentList.add(lgc);

  Collections.sort(studentList, new SortByAge());
  for (Student student : studentList) {
   System.out.println(student.getName() + " / " + student.getAge());
  }
  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 0;
 }
}

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());
 }
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章