Array中的sort函数如何实现降序排列?

解决方案 »

  1.   

    如果是int,byte那些是不行的,
    如果是Object

    Arrays.sort(array, Collections.reverseOrder());
      

  2.   

    常常遇到数组排序的问题.比如我有一个Person类,它的实例对象存储在ArrayList数组中,现在要把ArrayList数组中的Person对象按照年龄排序.
    其实这种情况经常遇到.
    下面给出源代码:1:Person.java文件:-------------------------------
    public class Person{
     String name;
     int age;
     
     public Person(String name,int age){
      this.name = name;
      this.age = age;
      
     } public int getAge() {
      return age;
     } public void setAge(int age) {
      this.age = age;
     } public String getName() {
      return name;
     } public void setName(String name) {
      this.name = name;
     }}
    2:Mycomparator.java-------------------------------
    //实现Comparator接口,也就是定义排序规则,你几乎可以定义任何规则
    package com.infoearth;
    import java.util.*;
    public class Mycomparator implements Comparator{ public int compare(Object o1,Object o2) {
      Person p1=(Person)o1;
      Person p2=(Person)o2;  
      if(p1.age<p2.age)
       return 1;
      else
       return 0;
     }}3:ListSort.java------------------------------------package com.infoearth;import java.util.ArrayList;
    import java.util.Collections;
    import java.util.Comparator;public class ListSort {
     public static void main(String[] args){
      ArrayList list = new ArrayList();
      list.add(new Person("lcl",28));
      list.add(new Person("fx",23));
      list.add(new Person("wqx",29));
      Comparator comp = new Mycomparator();
      Collections.sort(list,comp);  
      for(int i = 0;i<list.size();i++){
       Person p = (Person)list.get(i);
       System.out.println(p.getName());
      }  
      
     }}
      

  3.   

    你的Comparator是写错的!!!你上面说降序:
     public int compare(Object o1,Object o2) {
      Person p1=(Person)o1;
      Person p2=(Person)o2;    return p1.age - p2.age;//应该是指age越大越前吧,否则就反过来 p2.age - p1.age//  if(p1.age<p2.age)      p1 在 p2 前面 返回 < 0
    //   return 1;
    //  else                  //只有相等才可以返回0!,如果 p1 > p2 返回 > 0
    //   return 0;
     }}