62,614
社区成员
发帖
与我相关
我的任务
分享
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
class StuGra {
String stuName;// 学生名字
String courseName;// 课程名称
int courseRes;// 该课程的成绩
public String getStuName() {
return stuName;
}
public void setStuName(String stuName) {
this.stuName = stuName;
}
public String getCourseName() {
return courseName;
}
public void setCourseName(String courseName) {
this.courseName = courseName;
}
public int getCourseRes() {
return courseRes;
}
public void setCourseRes(int courseRes) {
this.courseRes = courseRes;
}
}
public class test {
public static void main(String[] args) {
StuGra temp1 = new StuGra();
temp1.setStuName("你");
temp1.setCourseName("语文");
temp1.setCourseRes(99);
StuGra temp2 = new StuGra();
temp2.setStuName("你");
temp2.setCourseName("数学");
temp2.setCourseRes(86);
StuGra temp3 = new StuGra();
temp3.setStuName("我");
temp3.setCourseName("语文");
temp3.setCourseRes(100);
StuGra temp4 = new StuGra();
temp4.setStuName("他");
temp4.setCourseName("数据结构");
temp4.setCourseRes(50);
StuGra temp5 = new StuGra();
temp5.setStuName("你");
temp5.setCourseName("java");
temp5.setCourseRes(56);
List<StuGra> list = new ArrayList<StuGra>();
list.add(temp1);
list.add(temp2);
list.add(temp3);
list.add(temp4);
list.add(temp5);
Collections.sort(list, new CompareStu());
int cur = 0;
String name = list.get(cur).getStuName();
int ts = 0;
int sc = 0;
for(int i =0;i<list.size();i++)
{
StuGra stu = list.get(i);
if(name.equals(stu.getStuName()))
{
sc++;
ts += stu.getCourseRes();
}else{
System.out.println(name + " " + ts+" "+(ts/(float)sc));
sc = 0;
ts = 0;
name = stu.getStuName();
i--;
}
}
System.out.println(name + " " + ts+" "+(ts/(float)sc));
}
}
class CompareStu implements Comparator {
public int compare(Object sourceObj, Object targetObj) {
StuGra source = (StuGra) sourceObj;
StuGra target = (StuGra) targetObj;
int n = 0;
String sn = source.getStuName();
String tn = target.getStuName();
if(sn.compareTo(tn)<0)//sn tn
n = -1;
else if(sn.compareTo(tn)>0)
n = 1;
else
n = 0;
return n;
}
}
package com.zhangkai.test;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
class StuGra {
String stuName;// 学生名字
String courseName;// 课程名称
int courseRes;// 该课程的成绩
public String getStuName() {
return stuName;
}
public void setStuName(String stuName) {
this.stuName = stuName;
}
public String getCourseName() {
return courseName;
}
public void setCourseName(String courseName) {
this.courseName = courseName;
}
public int getCourseRes() {
return courseRes;
}
public void setCourseRes(int courseRes) {
this.courseRes = courseRes;
}
}
public class TestList {
public static void main(String[] args) {
StuGra temp1 = new StuGra();
temp1.setStuName("你");
temp1.setCourseName("语文");
temp1.setCourseRes(99);
StuGra temp2 = new StuGra();
temp2.setStuName("你");
temp2.setCourseName("数学");
temp2.setCourseRes(86);
StuGra temp3 = new StuGra();
temp3.setStuName("我");
temp3.setCourseName("语文");
temp3.setCourseRes(100);
StuGra temp4 = new StuGra();
temp4.setStuName("他");
temp4.setCourseName("数据结构");
temp4.setCourseRes(50);
StuGra temp5 = new StuGra();
temp1.setStuName("你");
temp1.setCourseName("java");
temp1.setCourseRes(56);
List<StuGra> list = new ArrayList<StuGra>();
list.add(temp1);
list.add(temp2);
list.add(temp3);
list.add(temp4);
Map<String, Integer> map = new HashMap<String, Integer>();
Map<String, Integer> map2 = new HashMap<String, Integer>();
for (StuGra sg : list) {
StuGra s = sg;
map2.put(s.getStuName(), 1);
if (map.containsKey(s.getStuName())) {
int i = map.get(s.getStuName()).intValue();
int j = map2.get(s.getStuName());
j += 1;
i += s.getCourseRes();
map.put(s.getStuName(), i);
map2.put(s.getStuName(), j);
} else {
map.put(s.getStuName(), s.getCourseRes());
}
}
Set s = map.keySet();
for (Object i : s) {
double j = map.get(i) / map2.get(i);
System.out.println(i.toString() + "的平均分是:" + j);
System.out.println(i.toString() + "的总分是:" + map.get(i));
}
}
}
结果:
他的平均分是:50.0
他的总分是:50
我的平均分是:100.0
我的总分是:100
你的平均分是:71.0
你的总分是:142
自己按格式排好就行了。。