java排序问题。。求高手!
tom89mario90liming100jun76lifen81左边的是姓名,右边的是分数。这个怎么进行排序啊??要求输出分数的时候显示人名。谢谢!...
tom 89
mario 90
li ming 100
jun 76
li fen 81
左边的是姓名,右边的是分数。这个怎么进行排序啊??
要求输出分数的时候显示人名。谢谢! 展开
mario 90
li ming 100
jun 76
li fen 81
左边的是姓名,右边的是分数。这个怎么进行排序啊??
要求输出分数的时候显示人名。谢谢! 展开
7个回答
展开全部
/*创建一个类来同时保存姓名和分数。实现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; 就行了。
展开全部
从格式上来看名字字段长度固定
思路如下
1.如果是文件则使用readline()方法每次读取一行,注意不要使用trim()
2.计算出名字的固定长度并使用String的subString()方法截取名字和分数
3.将名字和分数存入一个map中 名字为key 分数为value
4.获取keySet(),使用一轮冒泡排序法找到最大的值对应的key(姓名),它对应的value就是成绩
思路如下
1.如果是文件则使用readline()方法每次读取一行,注意不要使用trim()
2.计算出名字的固定长度并使用String的subString()方法截取名字和分数
3.将名字和分数存入一个map中 名字为key 分数为value
4.获取keySet(),使用一轮冒泡排序法找到最大的值对应的key(姓名),它对应的value就是成绩
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
应该是想达到这效果吧!
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("不存在...");
}
}
}
有什么不懂可以联系我的!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
冒泡,插入,选择,二叉树排序,希尔排序,堆排序随便用
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用arraylist去考虑
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
很简单呀。用一个Scanner类就行了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询