java中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<Stu> list=new ArrayList<Stu>();
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);

}
}

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<Stu> list = new ArrayList<Stu>();
        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个回答  2017-02-21
public static void main(String[] args) {

List<Stu> list = new ArrayList<Stu>();
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);
}
第2个回答  2017-02-21
//使用map存储总成绩,key:学生姓名  value:学生成绩
Map<String,Integer> map = new HashMap<String,Integer>();
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);

java中list集合求学生总成绩,求张三和李四的总成绩,用循环判断的形式实...
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; ...

java中List<?>是什么意思?
List指的是集合.<>是泛型,里面指定了这个集合中存放的是什么数据.比如有一个学生类Student,Student里面包含了学生的一些信息.这样每一个Student对象就代表了一个学生.此时List<Student>就代表这个集合中存放了很多个学生对象,这个集合就像一个班级一样....

【Java基础】Java8 使用 stream().filter()过滤List对象(查找符合条件...
使用filter()方法进行条件筛选,如查找年龄小于25岁且身高大于1米7的学生列表。示例代码如下:java List students = new ArrayList>();students.add(new Student("张三", "男", 20, 175, "1998-01-01"));students.add(new Student("李四", "女", 24, 180, "1996-02-02"));students.add(...

【Java基础】Java8 使用 stream().sorted()对List集合进行排序
private String gender;private int age;private double height;private LocalDate birthday;\/\/ getters and setters...Override public int compareTo(Student other) { \/\/ 根据需求实现比较逻辑 } } 接下来,我们可以创建一些测试数据,如下所示:java List students = Arrays.asList(new Student("张...

Java使用循环,实现猜拳游戏统计多少局及胜率?
public class Main {public static void main(String[] args) {System.out.println("请输入本局局数:");Scanner scanner = new Scanner(System.in);int sum = scanner.nextInt();\/\/创建结果数组,resultArray[0]代表p1的获胜局数,resultArray[1]代表p2的获胜局数,resultArray[2]代表平局局数...

java中求出平均成绩大于80的学生姓名
public class TestStudent { public static void main(String[] args) { Student Z3 = new Student("张三",new String[]{"语文","数学"},new int[]{50,90}); Student L4 = new Student("李四",new String[]{"数学","英语"},new int[]{80,60}); Student W5 = new Student("王五"...

java的List集合里面放了Map,List<Map<String,Object>>,如何判定人名相同...
public class Test2 {public static void main(String[] args) {Map<String, String> map1 = new MyMap<>();map1.put("name", "张三");map1.put("公司", "腾讯");Map<String, String> map2 = new MyMap<>();map2.put("name", "李四");map2.put("公司", "阿里");Map<...

用java定义学生类(学号、姓名、成绩)。用列表list存放班级学生信息...
import java.util.List;public class Admin { public static void main(String... args) { List data = new ArrayList();Student s0 = new Student();s0.setNo("000");s0.setName("a");s0.setChengji(100.0);data.add(s0);Student s1 = new Student();s1.setNo("001");s1.set...

面试官:怎么去除 List 中的重复元素?我一行代码搞定,赶紧拿去用!
方法一:使用 for 循环添加去重。创建一个空的 List,遍历原 List,如果当前元素不存在于新 List 中,则添加。此方法确保了元素不重复。输出结果为:[张三, 李四, 周一, 刘四, 李强, 李白, 王五]。方法二:使用 for 双循环去重。通过双循环判断元素是否相等,如果相等则移除。输出结果与方法一相同...

求大神帮写JAVA学生成绩管理系统啊,谢谢哈,感激不尽。。。请发到邮箱...
import java.util.Scanner;public class Student { String name[] = new String[50] ; \/\/学生姓名 float score[] = new float[50] ;\/\/学分 String num[] = new String[50] ; \/\/学号 public static void main(String args[]){ StuMgr smr = new StuMgr();smr.initial();smr.Stu...

相似回答