关于成绩获取与排序问题?

无网_12 2011-11-30 03:23:06
public class StudentMark {
public static void main(String[] args) {
Students a=new Students1("张三",14,96);
Students b=new Students1("李四",16,91);
Students c=new Students1("王五",14,90);

}

}
class Student
{
private String name;
private int age;
private int mark;
public void setName(String name)
{
this.name=name;
}
public String getName()
{
return name;
}

public void setAge(int age)
{
this.age=age;
}
public int getAge()
{
return age;
}

public void setMark(int mark)
{
this.mark=mark;
}
public int getMark()
{
return mark;
}
public Students(String name,int age,int mark)
{
this.name=name;
this.age=age;
this.mark=mark;
}
}

请问成绩怎么获取??并进行排序后输出
...全文
83 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
脉动 2011-11-30
  • 打赏
  • 举报
回复

//lz的Students,代码中改成了Student(只为方便书写,呵呵)
import java.util.TreeSet;
import java.util.Iterator;

class StudentMark
{
public static void main(String[] args)
{
Student a=new Student("张三",14,96);
Student b=new Student("李四",16,91);
Student c=new Student("王五",14,90);

//TreeSet:底层是二叉树数据结构,会对其元素进行排序;元素不会重复
TreeSet<Student> ts = new TreeSet<Student>();
ts.add(a);
ts.add(b);
ts.add(c);
ts.add(new Student("王二",14,90));
ts.add(new Student("王二",14,90));

Iterator<Student> it = ts.iterator();
while(it.hasNext())
{
Student stu = it.next();
System.out.println(stu.toString());
}

}
}
class Student implements Comparable<Student> //需要实现Comparable接口
{
private String name;
private int age;
private int mark;

public Student(String name,int age,int mark)
{
this.name=name;
this.age=age;
this.mark=mark;
}

//重写compareTo()方法
public int compareTo(Student obj)
{
int num = new Integer(this.mark).compareTo(new Integer(obj.mark)); //比较的主要条件是:mark
if(num==0)
return this.name.compareTo(obj.name); //比较的次要条件是:name,当分数一样后,再比较姓名,根据返回值,进行存储,如果姓名依然一样,这个数据就不会存储进去,
//如果需要,你可以再加上比较年龄的条件
return num;
}

//重写String()方法,以便输出
public String toString()
{
return this.name+".."+this.age+".."+this.mark;
}

public void setName(String name)
{
this.name=name;
}

public String getName()
{
return name;
}

public void setAge(int age)
{
this.age=age;
}

public int getAge()
{
return age;
}

public void setMark(int mark)
{
this.mark=mark;
}

public int getMark()
{
return mark;
}
}


rocky225 2011-11-30
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 ruogannian 的回复:]

Java code


public class StudentMark {
public static void main(String[] args) {
List<Student> list = new ArrayList<Student>();
Student a = new Student("张三", 14, 96);
Stud……
[/Quote]
compareTo方法
若干年 2011-11-30
  • 打赏
  • 举报
回复


public class StudentMark {
public static void main(String[] args) {
List<Student> list = new ArrayList<Student>();
Student a = new Student("张三", 14, 96);
Student b = new Student("李四", 16, 91);
Student c = new Student("王五", 14, 90);
list.add(a);
list.add(b);
list.add(c);

Collections.sort(list);
for (Student student : list) {
System.out.println(student.toString());
}

}
}

class Student implements Comparable<Student>{
private String name;
private int age;
private int mark;

public void setName(String name) {
this.name = name;
}

public String getName() {
return name;
}

public void setAge(int age) {
this.age = age;
}

public int getAge() {
return age;
}

public void setMark(int mark) {
this.mark = mark;
}

public int getMark() {
return mark;
}

public Student(String name, int age, int mark) {
this.name = name;
this.age = age;
this.mark = mark;
}

public int compareTo(Student o) {
return this.mark-o.mark;
}

public String toString(){
return this.name + " " + this.age + " " + this.mark;
}
}

51,411

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧