java排序问题。。求高手!

tom89mario90liming100jun76lifen81左边的是姓名,右边的是分数。这个怎么进行排序啊??要求输出分数的时候显示人名。谢谢!... tom 89
mario 90
li ming 100
jun 76
li fen 81

左边的是姓名,右边的是分数。这个怎么进行排序啊??
要求输出分数的时候显示人名。谢谢!
展开
 我来答
yanch7
2013-06-18
知道答主
回答量:18
采纳率:0%
帮助的人:17.6万
展开全部
/*创建一个类来同时保存姓名和分数。实现Comparable接口,再将数据保存在一个数组中,使用Arrays.sort()进行排序*/
import java.util.Arrays;

class Score implements Comparable<Score> {
private String name;
private int point;

public Score(String name, int point) {
this.name = name;
this.point = point;
}

public int compareTo(Score s) {
return this.point - s.point;
}

public String toString() {
return name + ":" + point;
}
}

public class ScoreSort {
public static void main(String[] args) {
Score[] scores = new Score[5];
scores[0] = new Score("tom", 89);
scores[1] = new Score("mario", 90);
scores[2] = new Score("li ming", 100);
scores[3] = new Score("jun", 76);
scores[4] = new Score("li fen", 81);
Arrays.sort(scores);
System.out.println("result:");
for(Score s : scores) {
System.out.println(s);
}
}
}

运行结果

追问
public int compareTo(Score s) { 
return this.point - s.point; //这句 this.point - s.point 是什么意思啊??
}

还有,我想要的是分数高的在上面,分数低的在下面。谢谢!!
追答
compareTo里指定类的比较规则。这里使用分数进行比较。按照规定,大于返回正数,小于返回负数,等于返回0.
要实现降序排列的话,改成return s.point - this.point; 就行了。
sealcrysteal
2013-06-18 · 超过40用户采纳过TA的回答
知道小有建树答主
回答量:142
采纳率:100%
帮助的人:92.2万
展开全部
从格式上来看名字字段长度固定
思路如下
1.如果是文件则使用readline()方法每次读取一行,注意不要使用trim()
2.计算出名字的固定长度并使用String的subString()方法截取名字和分数
3.将名字和分数存入一个map中 名字为key 分数为value
4.获取keySet(),使用一轮冒泡排序法找到最大的值对应的key(姓名),它对应的value就是成绩
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
愤怒D小蛋
2013-06-18 · TA获得超过195个赞
知道小有建树答主
回答量:211
采纳率:0%
帮助的人:72.6万
展开全部

应该是想达到这效果吧!

import java.util.*;
public class f{
 public static void main(String[] args){
  Scanner in=new Scanner(System.in);
  System.out.println("请输入你的成绩");
  int fs=in.nextInt();
  if(fs==89){
   System.out.println("tom");
  }else if(fs==90){
   System.out.println("mario");
  }else if(fs==100){
   System.out.println("li ming");
  }else if(fs==76){
   System.out.println("jun");
  }else if(fs==81){
   System.out.println("li fen");
  }else{
   System.out.println("不存在...");
  }
 }
}

有什么不懂可以联系我的!

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
帐号已注销
2013-06-18 · TA获得超过1243个赞
知道小有建树答主
回答量:2126
采纳率:55%
帮助的人:674万
展开全部
冒泡,插入,选择,二叉树排序,希尔排序,堆排序随便用
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
chinaren_1123
2013-06-18
知道答主
回答量:54
采纳率:0%
帮助的人:10.5万
展开全部
用arraylist去考虑
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
永若灵0j03c0
2013-06-18 · TA获得超过130个赞
知道小有建树答主
回答量:190
采纳率:0%
帮助的人:84.6万
展开全部
很简单呀。用一个Scanner类就行了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zhb19910312
2013-06-18
知道答主
回答量:13
采纳率:0%
帮助的人:4.2万
展开全部
没明白你想干嘛
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式