【求教】大神一道java问题。在下感激不尽了!!!!!
想要实现在这段代码下按成绩由高到低来排序输出,用sort函数实现能做到吗?或者说用冒泡法能否做得到?代码:publicclassStudent{publicstaticv...
想要实现在这段代码下按成绩由高到低来排序输出,用sort函数实现能做到吗?或者说用冒泡法能否做得到?
代码:
public class Student
{
public static void main(String[] args)
{
studentclass s1=new studentclass();
studentclass s2=new studentclass();
studentclass s3=new studentclass();
s1.set("张三",1,"男");
s1.set(90.5);
s2.set("李四",2,"女");
s2.set(80.0);
s3.set("王五",3,"男");
s3.set(68.0);
System.out.println(s1.toString());
System.out.println(s2.toString());
System.out.println(s3.toString());
}
}
class studentclass
{
String name;
int code;
String sexy;
double mark;
public void set(String name,int code,String sexy)
{
this.name=name;
this.code=code;
this.sexy=sexy;
}
public void set(double mark)
{
this.mark=mark;
}
public String getname()
{
return name;
}
public int getcode()
{
return code;
}
public String getsexy()
{
return sexy;
}
public double getmark()
{
return mark;
}
public String toString()
{
String infor="姓名:"+name+" "+"学号:"+code+" "+"性别:"+sexy+" "+"成绩:"+mark;
return infor;
}
} 展开
代码:
public class Student
{
public static void main(String[] args)
{
studentclass s1=new studentclass();
studentclass s2=new studentclass();
studentclass s3=new studentclass();
s1.set("张三",1,"男");
s1.set(90.5);
s2.set("李四",2,"女");
s2.set(80.0);
s3.set("王五",3,"男");
s3.set(68.0);
System.out.println(s1.toString());
System.out.println(s2.toString());
System.out.println(s3.toString());
}
}
class studentclass
{
String name;
int code;
String sexy;
double mark;
public void set(String name,int code,String sexy)
{
this.name=name;
this.code=code;
this.sexy=sexy;
}
public void set(double mark)
{
this.mark=mark;
}
public String getname()
{
return name;
}
public int getcode()
{
return code;
}
public String getsexy()
{
return sexy;
}
public double getmark()
{
return mark;
}
public String toString()
{
String infor="姓名:"+name+" "+"学号:"+code+" "+"性别:"+sexy+" "+"成绩:"+mark;
return infor;
}
} 展开
5个回答
展开全部
public static void main(String[] args) {
List<studentclass> list = new ArrayList<studentclass>();
studentclass s1 = new studentclass();
studentclass s2 = new studentclass();
studentclass s3 = new studentclass();
s1.set("张三", 1, "男");
s1.set(90.5);
s2.set("李四", 2, "女");
s2.set(180.0);
s3.set("王五", 3, "男");
s3.set(68.0);
//排序
list.add(s1);
list.add(s2);
list.add(s3);
Collections.sort(list, new mysort());
for (studentclass s : list) {
System.out.println(s.toString());
}
}
}
class mysort implements Comparator<studentclass>{
public int compare(studentclass o1, studentclass o2) {
//通过对应字段
return String.valueOf(o1.getmark()).compareTo(String.valueOf(o2.getmark()));
}
}
List<studentclass> list = new ArrayList<studentclass>();
studentclass s1 = new studentclass();
studentclass s2 = new studentclass();
studentclass s3 = new studentclass();
s1.set("张三", 1, "男");
s1.set(90.5);
s2.set("李四", 2, "女");
s2.set(180.0);
s3.set("王五", 3, "男");
s3.set(68.0);
//排序
list.add(s1);
list.add(s2);
list.add(s3);
Collections.sort(list, new mysort());
for (studentclass s : list) {
System.out.println(s.toString());
}
}
}
class mysort implements Comparator<studentclass>{
public int compare(studentclass o1, studentclass o2) {
//通过对应字段
return String.valueOf(o1.getmark()).compareTo(String.valueOf(o2.getmark()));
}
}
展开全部
实现肯拍二宝接口,应该是这么读的,我英语不好,没有IDE我不会打这个英文单词,见谅
追问
....恩,是那个意思,但能换种方法么?觉得那种比较复杂。
追答
这个还复杂?用冒泡也行,不过写起来比较困难啊
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用冒泡排序能解决。。先取出一个分数,然后再取出一个跟前面做比较。。。哪个大就跟下一个做比较。。。大概理论就是这样。。比较简单
追问
主要是代码方面怎么实现啊,冒泡法不是得要数组才能做到吗?问题是我这是类变量。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可以实现的 Arrays类里有sort(object o)的函数..但是你得在下面的类里边实现comparable接口,覆盖compareTo方法
追问
这个具体怎么实现呢?我这个不是数组变量。还望能给出具体点的代码,谢谢了!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
建议你去转转专业的论坛
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询