java里面数组之间的强制转换
}else{//排序//Studentstu[]=newStudent[list.size()+1];Studentstu[]=(Student[])list.toArr...
}else{ //排序
//Student stu[]= new Student[list.size()+1];
Student stu[] = (Student [])list.toArray();
//Arrays.sort(stu);
/*
for(int i=0;i<stu.length;i++){
jTextArea1.append(stu[i].toString());
jTextArea1.append("\n");
}
*/
/*
for(Student k :stu){
jTextArea1.append(k.toString());
jTextArea1.append("\n");
}
*/
}
}
}
以上是部分代码,我想问下使用Arrays.sort()这个方法排序,需要转换一个集合到一个数组,但是不能强制转换,我知道Arrays.sort()返回一个Object[]类型的变量,但是我想这么写:
//Student stu[]= new Student[list.size()+1];
Student stu[] = (Student [])list.toArray();
//Arrays.sort(stu);
哪里有问题??
//ps:我会使用Collections.sort(),不需要这种方法,谢谢。
以下是关于Student类:
public class Student implements Comparable<Student>{
String name;
int score;
public Student(String name,int score){
this.name=name;
this.score=score;
}
public String toString(){
return "name:"+name+" score:"+score;
}
public int compareTo(Student obj){
return obj.score-this.score;
}
}
已经实现了Comparable接口!
速求,谢谢 展开
//Student stu[]= new Student[list.size()+1];
Student stu[] = (Student [])list.toArray();
//Arrays.sort(stu);
/*
for(int i=0;i<stu.length;i++){
jTextArea1.append(stu[i].toString());
jTextArea1.append("\n");
}
*/
/*
for(Student k :stu){
jTextArea1.append(k.toString());
jTextArea1.append("\n");
}
*/
}
}
}
以上是部分代码,我想问下使用Arrays.sort()这个方法排序,需要转换一个集合到一个数组,但是不能强制转换,我知道Arrays.sort()返回一个Object[]类型的变量,但是我想这么写:
//Student stu[]= new Student[list.size()+1];
Student stu[] = (Student [])list.toArray();
//Arrays.sort(stu);
哪里有问题??
//ps:我会使用Collections.sort(),不需要这种方法,谢谢。
以下是关于Student类:
public class Student implements Comparable<Student>{
String name;
int score;
public Student(String name,int score){
this.name=name;
this.score=score;
}
public String toString(){
return "name:"+name+" score:"+score;
}
public int compareTo(Student obj){
return obj.score-this.score;
}
}
已经实现了Comparable接口!
速求,谢谢 展开
1个回答
展开全部
你这么写不就等于把Student[]强转成Object[],编译肯定不过啊。
你可以试试 Student[] stu = list.toArray(stu);
你可以试试 Student[] stu = list.toArray(stu);
追问
什么意思?方法的返回值不是一个Object[]类型的吗?把他转换成Student[]不对吗……
试过了,答案不对……还是编译不过去
追答
我的意思是
Student[] stu = new Student[list.size()];
stu = list.toArray(stu);
你直接把Object[]类型转换为Student[]当然不对。
因为你是把一个父类型转换为了一个子类型,编译会报错。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询