黑马程序员技术交流社区

标题: Arrays.sort排序函数问题 [打印本页]

作者: 高鑫    时间: 2012-4-26 22:37
标题: Arrays.sort排序函数问题
class Demo
{        public static void main(String[] args)               
                {
                        int [] arr=new int []{1,3,1,10,5};
                         Arrays.sort(arr);
                         xianshi(arr);

                }       
        public static void xianshi(int[] arr)
                {for(int x=0;x<arr.length;x++)
                       
                        System.out.print(arr[x]+",");
                       
                }
               
        }
Arrays.sort函数不是JAVA定义好的排序函数吗,为什么编译显示找不到符号Arrays.sort
作者: chenwei    时间: 2012-4-26 22:42
Arrays是util工具包里的,用的话要导包
import java.util.Arrays;
作者: 张卯    时间: 2012-4-26 22:44
要导包啊兄弟~
作者: 王敏NO.09    时间: 2012-4-26 22:53
导入包即可
import java.util.Arrays;
class ArraySort
{        public static void main(String[] args)               
                {
                        int [] arr=new int []{1,3,1,10,5};
                         Arrays.sort(arr);
                         xianshi(arr);

                }        
        public static void xianshi(int[] arr)
                {for(int x=0;x<arr.length;x++)
                        
                        System.out.print(arr[x]+",");
                        
                }
               
        }

作者: 方海东    时间: 2012-4-26 23:02
加入一条导包语句:java.util.*
作者: 张成龙    时间: 2012-4-26 23:05
需要导入包import  java.util.*;
作者: 光sail    时间: 2012-4-26 23:16
兄弟你要导包,要是用eclipse,同时按住Ctrl+Shift+O,自动导入需要的包
作者: 杨志    时间: 2012-4-26 23:35
哥们!找不到符号之类的问题一般都是 没有导包之类的!
我不知道你知不道怎么导包!在java文件的头部加上即可:
import java.util.*;

然后说下今天我做那个基础测试题目的排序。
关于一般的排序。你这样就OK!但是对于对象数组的排序,或者说按照特定关键字的排序!则用到Comparator接口。
要求根据学生student的成绩进行排序:

class MyComparator implements Comparator<Student>{    //这里泛型 指定传入的对象类型
  public int compare(Student stu1,Student stu2){                 //这里会自动出去两个对象进行比较,根据比较的大小决定是否互换。
   if(stu1.getScore() > stu2.getScore()){
    return 1 ;
   }else{
    return 0;
   }
  }
}

public class SortStudent{

public static void main(String[] args){
  Student[] student = new Student[5];
  student[0] = new Student("xiaohong",18,89.5f);
  student[1] = new Student("xiaoming",20,89f);
  student[2] = new Student("xiaobai",17,88f);
  student[3] = new Student("xiaotian",19,60.5f);
  student[4] = new Student("xiaohua",20,70f);
  System.out.println("------------排序之前------------");
  for(int i = 0 ; i < student.length ; i ++){
   System.out.println("姓名:" + student[i].getName() + "  年龄:" + student[i].getAge() + " 成绩:" + student[i].getScore());
  }
  Arrays.sort(student, new MyComparator());  
   //其实这里我感觉有点像是java中的钩子函数,JDK中并没有去实现。而是留出接口让程序员自己去实现。根据MyComparator中函数的返回值来进行排序。

  
  System.out.println("------------排序之后------------");
  for(int i = 0 ; i < student.length ; i ++){
   System.out.println("姓名:" + student[i].getName() + "  年龄:" + student[i].getAge() + " 成绩:" + student[i].getScore());
  }
}
}


以上是我今天查JDK得来的结果。当然也不算是完美。只是写下相当于是一篇总结嘛,拿来互相分享。

作者: 杨志    时间: 2012-4-26 23:36
光sail 发表于 2012-4-26 23:16
兄弟你要导包,要是用eclipse,同时按住Ctrl+Shift+O,自动导入需要的包

哥们!学习了! 这个快捷我还真心不知道!
作者: HeiMaYSL    时间: 2012-4-27 17:07
少导入了一个包
应加上:
import java.util.Arrays;

作者: 金超    时间: 2012-4-28 01:02
导入import java.util.*;
就行了




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2