import java.util.Arrays;public class Main
{ public static void main(String[] args)
{
Student []arr=new Student[10];
arr[0]=new Student("Tom",23);
arr[1]=new Student("Jerry",24);
arr[2]=new Student("Marry",20);
arr[3]=new Student("Jeck",22);
arr[4]=new Student("Torry",25);
Arrays.sort( arr );
for(int i=0;i<5;i++){
System.out.println( arr[i] );
} }}异常是:Exception in thread "main" java.lang.NullPointerException
at java.util.Arrays.mergeSort(Arrays.java:1144)
at java.util.Arrays.mergeSort(Arrays.java:1156)
at java.util.Arrays.sort(Arrays.java:1079)
at 对象排序.Main.main(Main.java:17)
请大家告诉我问题出在哪 应该怎么解决
{ public static void main(String[] args)
{
Student []arr=new Student[10];
arr[0]=new Student("Tom",23);
arr[1]=new Student("Jerry",24);
arr[2]=new Student("Marry",20);
arr[3]=new Student("Jeck",22);
arr[4]=new Student("Torry",25);
Arrays.sort( arr );
for(int i=0;i<5;i++){
System.out.println( arr[i] );
} }}异常是:Exception in thread "main" java.lang.NullPointerException
at java.util.Arrays.mergeSort(Arrays.java:1144)
at java.util.Arrays.mergeSort(Arrays.java:1156)
at java.util.Arrays.sort(Arrays.java:1079)
at 对象排序.Main.main(Main.java:17)
请大家告诉我问题出在哪 应该怎么解决
解决方案 »
- 教授布置的一个JAVA小项目.请老鸟给点建议.
- 关于UltraEdit的筛选同一后缀名文件
- Swing问题 急 谢谢
- test
- 急急急!!如何在internet中通信?
- 请问大家JBoss的稳定性和效率如何?
- import javax.swing.*;import java.awt.*;什么区别?
- scjp的题目,来看看
- 关于Local接口和Remote接口!(请看过SUN的PetStore例子的朋友进来看看)!!!
- 我要学习 java,但不知道java 最高版本是多少啊?我应学哪个版本好呢?还有那里有电子版的中文书籍下栽啊?谢谢
- 关于java窗体拖动事件
- 想弄一个带进度条的Ajax文件上传,大家推荐一下用什么比较好。
其次才能用Arrays.sort去排序
我要是这样写 就一切正常 Student []arr={
new Student("Tom",23),
new Student("Jerry",24),
new Student("Marry",20),
new Student("Jeck",22),
new Student("Torry",25)
};
Arrays.sort( arr );
for(int i=0;i<5;i++){
System.out.println( arr[i] );
}
Object[] aux = (Object[])a.clone();
mergeSort(aux, a, 0, a.length, 0);
}再看mergeSort(aux, a, 0, a.length, 0):private static void mergeSort(Object[] src,
Object[] dest,
int low,
int high,
int off) {
int length = high - low;// Insertion sort on smallest arrays
if (length < INSERTIONSORT_THRESHOLD) {
for (int i=low; i<high; i++)
for (int j=i; j>low &&
((Comparable) dest[j-1]).compareTo(dest[j])>0; j--)
swap(dest, j, j-1);
return;
}
......看到了没? 你只实例化了arr[0] - arr[4],后面arr[5]-arr[9]都为null, 它没法比较啊.
但是你可以用Arrays另外一个sort方法,它带一个Comparator参, 也就是要传递一个比较器过去,
在这个比较器里面, 你可以判断被比较的对象是不是null.