请问Java Api里是否有 数组排序的方法?经常要给数组排序,写起来费劲,有没有 API的方法?
老师曾经说过一句有一个叫scot上的方法,但是,我没有找到 
请帮忙,谢谢

解决方案 »

  1.   

    collections类下的sort方法,但是要写比较器
    Arrays下也有个sort,LZ自己去看看API吧
      

  2.   

    使用Collections.sort()为List等排序
    import java.io.UnsupportedEncodingException; 
    import java.util.ArrayList; 
    import java.util.Collections; 
    import java.util.Comparator; 
    import java.util.List; public class Test2 {   public static void main(String[] arg) {     
        List <Student> list = new ArrayList <Student> (); 
        list.add(new Student(2, "张三 ")); 
        list.add(new Student(1, "李四 ")); 
        list.add(new Student(4, "王二 ")); 
        list.add(new Student(3, "赵五 "));     // Comparator <Student> comparator = getComparator( "id "); 
        Comparator <Student> comparator = getComparator( "name "); 
         
        Collections.sort(list, comparator); 
         
        // 输出 
        for(Student stu : list) { 
          System.out.println(stu.getId() + " --> " + stu.getName()); 
        } 
      } 
       
      private static Comparator <Student> getComparator(String fieldName) { 
        if(fieldName.equalsIgnoreCase( "id ")) { 
          return new StudentIdComparator <Student> (); 
        } 
        if(fieldName.equalsIgnoreCase( "name ")) { 
          return new StudentNameComparator <Student> (); 
        } 
        return null; 
      } 
    } class Student { 
      private int id; 
      private String name; 
       <construtor...> 
       <getter/setter...> 
    } /** 
    * 按照学生的 id 号大小升序排序 
    */ 
    class StudentIdComparator <T extends Student> 
        implements Comparator <Student> { 
      public int compare(Student o1, Student o2) { 
        return o1.getId() - o2.getId(); 
      }   
    } /** 
    * 按照学生的 name 的 GB2312 编码排序(简单字可以理解为音序) 
    */ 
    class StudentNameComparator <T extends Student> 
        implements Comparator <Student> {   
      public int compare(Student o1, Student o2) { 
        return getGBK(o1.getName()).compareTo(getGBK(o2.getName())); 
      }   private String getGBK(String str) { 
        byte[] bytes = null; 
        try { 
          bytes = str.getBytes( "gb2312 "); 
        } catch (UnsupportedEncodingException e) { 
          e.printStackTrace(); 
        } 
        StringBuffer sb = new StringBuffer(); 
        for(byte b : bytes) { 
          sb.append(String.format( "%02X ", b)); 
        } 
        return sb.toString(); 
      } 
      

  3.   

     在JAVA中有些基本类型的比较器,可以参照着写比较器!
      

  4.   

    Arrays.sort(数组名)
    这个可以对数组排序
      

  5.   

    简单的数组可以使用这种方法。(实现Comparable接口的对象也行。)