黑马程序员技术交流社区
标题:
求教大神一个java问题...十分感谢!
[打印本页]
作者:
马姗姗
时间:
2014-2-10 12:27
标题:
求教大神一个java问题...十分感谢!
这段代码为什么跑不起来?哪里有错误??万分感谢了。
public class Student
{
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 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;
}
}
class mysort implements Comparator<studentclass>
{
public int compare(studentclass o1, studentclass o2)
{
//通过对应字段
return String.valueOf(o1.getmark()).compareTo(String.valueOf(o2.getmark()));
}
}
作者:
kira
时间:
2014-2-10 12:39
你没有导包啊{:soso_e127:}
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
public class Student
{
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 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;
}
}
class mysort implements Comparator<studentclass>
{
public int compare(studentclass o1, studentclass o2)
{
//通过对应字段
return String.valueOf(o1.getmark()).compareTo(String.valueOf(o2.getmark()));
}
}
复制代码
作者:
郭运川
时间:
2014-2-10 12:41
导入工具包
import java.util.*;
作者:
itpower
时间:
2014-2-10 12:44
额,一个包都没有导,,
import java.util.*;
作者:
未烧开的白开水
时间:
2014-2-11 15:33
代码没有问题啊~
可能是忘记导包了吧~
你可以尝试学习使用eclipse快捷键,ctrl+shift+o快速导包,不过要注意,有相同类名的包,千万别导错了~
作者:
↑↓ME→←
时间:
2014-2-11 21:48
看你程序的意思,你是想按成绩排名吧!你的比较器里compareTo方法比较的是字符串形式的mark,它会比较每个字符,返回首个不相同字符的Unicode差(前减后),想要得到想要的答案,你的比较器应该这样写!
class mysort implements Comparator<studentclass>
{
public int compare(studentclass o1, studentclass o2)
{
int i;
//通过对应字段
if(o1.getmark() > o2.getmark()){
i = 1;
}else if(o1.getmark() < o2.getmark()){
i = -1;
}else{
}
}
}
复制代码
作者:
↑↓ME→←
时间:
2014-2-11 21:55
少写啦
class mysort implements Comparator<studentclass>
{
public int compare(studentclass o1, studentclass o2)
{
int i;
//通过对应字段
if(o1.getmark() > o2.getmark()){
i = 1;
}else if(o1.getmark() < o2.getmark()){
i = -1;
}else{
i = 0;
}
return i;
}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2