基本上我试图制作一个程序,允许教师为每个学生输入考试成绩,然后在他们输入成绩后,它会给教师一个他们输入的所有成绩的总和
public static void grades(){
List<Integer> grade = new ArrayList<Integer>();
int gradetotal = IntStream.of(grades).sum;/* sum */
int gradelistnumber = 1;
int inputedgrade = 0;
while(inputedgrade != -1){
System.out.println("Enter Grade for student " + gradelistnumber + " (1-50): ");
inputedgrade = sc.nextInt();
grade.add(inputedgrade);
gradelistnumber++;
}
System.out.println("Class Average: " + gradetotal / 50 * 100);
}
我正在试图弄清楚如何获得数组列表成绩的总和。
答案 0 :(得分:5)
以下是使用java 8汇总集合的方式:
import java.util.ArrayList;
import java.util.List;
public class Solution {
public static void main(String args[]) throws Exception {
List<Integer> numbers = new ArrayList<>();
numbers.add(1);
numbers.add(3);
numbers.add(5);
System.out.println(numbers.stream().mapToInt(value -> value).sum());
}
}
在您的代码中,您将对grade
列表执行此操作。您可以在循环后将其设置为gradetotal
。
value -> value
说&#34;拿出每个参数并将其返回&#34;。 stream()
会返回Stream
,而sum()
没有mapToInt
。 IntStream
会返回sum()
拥有value -> value
。 Stream
告诉代码如何将Integer
中的每个元素转换为Integer
。因为每个元素已经一个{{1}},所以我们只需要返回每个元素。
答案 1 :(得分:0)
为什么不保留一个数组,为什么不保留两个临时变量 - 计数和求和?
int gradetotal = 0;
int gradelistnumber = 0;
int inputedgrade = 0;
while(inputedgrade != -1){
System.out.println("Enter Grade for student " + gradelistnumber + " (1-50): ");
inputedgrade = sc.nextInt();
gradetotal = gradetotal + inputedgrade;
gradelistnumber++;
}