import java.util.Arrays;
class ArrayTest{
public static void main(String[] args){ /*Students[] ss=new Students[]{
new Students("ahangsan",18),
new Students("bisi",11),
new Students("cangwu",8),
new Students("aaa",8)};*/
Students[] ss=new Students[4];
new Students("ahangsan",18);
new Students("bisi",11);
new Students("cangwu",8);
new Students("aaa",8);
Arrays.sort(ss);
int index=Arrays.binarySearch(ss,ss[2]);
System.out.println("index="+index);
System.out.println(ss[index]);
}
}
创建数组后直接符值就没问题,可以从这个对象数组中取出想要的元素,为什么声明这个对象数组有4个元素,并分别创建后就是NULLPOINTEREXCEPTION呢???
谢谢是我binarySearch方法比较对象用法用的不对???
class ArrayTest{
public static void main(String[] args){ /*Students[] ss=new Students[]{
new Students("ahangsan",18),
new Students("bisi",11),
new Students("cangwu",8),
new Students("aaa",8)};*/
Students[] ss=new Students[4];
new Students("ahangsan",18);
new Students("bisi",11);
new Students("cangwu",8);
new Students("aaa",8);
Arrays.sort(ss);
int index=Arrays.binarySearch(ss,ss[2]);
System.out.println("index="+index);
System.out.println(ss[index]);
}
}
创建数组后直接符值就没问题,可以从这个对象数组中取出想要的元素,为什么声明这个对象数组有4个元素,并分别创建后就是NULLPOINTEREXCEPTION呢???
谢谢是我binarySearch方法比较对象用法用的不对???
new Students("ahangsan",18);//这里不是给上面的数组赋值,只是临时创建了一个对象。
new Students("bisi",11);/////不是赋值,只是临时对象。
new Students("cangwu",8);
new Students("aaa",8);你如果想赋值,应该这样写:
ss[0] =new Students("ahangsan",18);
ss[1] =new ……
ss[2] =new ……
……或者使用循环赋值。
new Students("bisi",11);
new Students("cangwu",8);
new Students("aaa",8);你的这四个对象根本就没有放到数组中啊!你应该把他们分别赋值给ss[0],ss[1],ss[2],ss[3]
然后在Arrays.sort(ss);