菜鸟求助~

davidcoffee 2009-12-02 09:18:58
怎样用Map实现学生成绩单的存储和查询,并且对成绩进行排序储存到TreeSet中,求出平均成绩,最大值和最小值~
...全文
127 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
jonay 2009-12-03
  • 打赏
  • 举报
回复

public class Main {
private Map<String, Integer> map = new HashMap<String, Integer>();
public static void main(String[] args) {
Main m = new Main();
//存储
m.record("name1", 90);
m.record("name2", 100);
//查询
System.out.println(m.getMark("name2"));
//最大值
System.out.println(m.getMaxMark());
//最小值
System.out.println(m.getMinMark());
//平均值
System.out.println(m.getAvgMark());


}
private void record(String name, Integer value) {
map.put(name, value);
}
private Integer getMark(String name) {
return map.get(name);
}
private Integer getMaxMark() {
return Collections.max(map.values());
}
private Integer getMinMark() {
return Collections.min(map.values());
}
private Integer getAvgMark() {
int num = map.values().size();
if (num > 0) {
int sum = 0;
for (Integer i : map.values()) {
sum += i;
}
return sum / num;
} else {
return 0;
}
}
}
gao11811 2009-12-03
  • 打赏
  • 举报
回复
Map score = new hashMap();
score.put("姓名/学号",成绩)
...
至于要排序,直接用数组就行啦
int mark[] = new int[学生数量]

求平均:
int all=0;
int avg=0;
for(int i=0;i<mark.length;i++){
all += mark[i];
}
avg=all/mark.length;

求最值:
mark.sort()//升序
mark[0]最小
mark[mark.length-1]最大

如同楼上所说,set要求不重复的元素,所以用set明显不合理,你也可以用list,反正都差不多
zhelong1983 2009-12-03
  • 打赏
  • 举报
回复
为什么要存储到TreeSet中呢?TreeSet元素不允许重复,如果有人成绩相同这么办?

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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