中易网

java中list集合求学生总成绩,求张三和李四的总成绩,用循环判断的形式实现

答案:3  悬赏:0  
解决时间 2021-01-15 14:15
  • 提问者网友:心如荒岛囚我终老
  • 2021-01-15 02:01
java中list集合求学生总成绩,求张三和李四的总成绩,用循环判断的形式实现
最佳答案
  • 二级知识专家网友:走死在岁月里
  • 2021-01-15 02:16
package image;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;

public class Stu {
    public String name;
    public String course;
    public int score;
    public int total;

    public Stu(String name, String course, int score) {
        this.name = name;
        this.course = course;
        this.score = score;
    }

    public String getName() {
        return name;
    }

    public int getScore() {
        return score;
    }

    public int getTotal() {
        return total;
    }

    public void setTotal(int total) {
        this.total = total;
    }

    public static void main(String[] args) {
        List list = new ArrayList();
        Stu stu0 = new Stu("张三", "语文", 60);
        Stu stu1 = new Stu("张三", "数学", 70);
        Stu stu3 = new Stu("李四", "语文", 65);
        Stu stu4 = new Stu("李四", "数学", 75);
        list.add(stu0);
        list.add(stu1);
        list.add(stu3);
        list.add(stu4);
        // 总成绩
        BigDecimal totalB = new BigDecimal("0");
        BigDecimal totalZhangsan = new BigDecimal("0");
        BigDecimal totalLisi = new BigDecimal("0");
        for (Stu stu : list) {
            totalB = totalB.add(new BigDecimal(stu.getScore() + ""));
            if ("张三".equals(stu.getName())) {
                totalZhangsan = totalZhangsan.add(new BigDecimal(stu.getScore() + ""));
            }else if ("李四".equals(stu.getName())) {
                totalLisi = totalLisi.add(new BigDecimal(stu.getScore() + ""));
            }
        }
        System.out.println(totalB.doubleValue());
        System.out.println(totalZhangsan.doubleValue());
        System.out.println(totalLisi.doubleValue());

    }
}使用BigDecimal避免分数为小数时失真
结果为:
总成绩:270.0    
张三:130.0    
李四:140.0    


全部回答
  • 1楼网友:夜风逐马
  • 2021-01-15 04:03
//使用map存储总成绩,key:学生姓名  value:学生成绩
Map map = new HashMap();
for(Stu stu:list){ 
 if(!map.containsKey(stu.getName)){
 map.put(stu.getName,stu.getScore());
 }else{
 map.put(stu.getName,map.get(stu.getName)+stu.getScore());
 }
}
System.out.println(map);
  • 2楼网友:持酒劝斜阳
  • 2021-01-15 03:04
public static void main(String[] args) {
List list = new ArrayList();
Stu stu0=new Stu("张三","语文",60);
Stu stu1=new Stu("张三","数学",70);
Stu stu3=new Stu("李四","语文",65);
Stu stu4=new Stu("李四","数学",75);
list.add(stu0);
list.add(stu1);
list.add(stu3);
list.add(stu4);
int sumScore = 0;//声明变量保存学生总成绩
int zhangsanSumScore = 0;//声明变量保存张三总成绩
int lisiSumScore = 0;//声明变量保存李四总成绩
for (Stu stu : list) {//循环list
sumScore = sumScore + stu.getScore();//计算总成绩
if( stu.getName().equals("张三") ){//如果姓名是张三,则计算成绩
zhangsanSumScore = zhangsanSumScore + stu.getScore();
}else{//否则就是李四的成绩
lisiSumScore = lisiSumScore + stu.getScore();
}
}
System.out.println("学生总成绩为"+sumScore);
System.out.println("张三总成绩为"+zhangsanSumScore);
System.out.println("李四总成绩为"+lisiSumScore);
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息