我是一个完全的新手,所以我请你不要说太多脏话)
有一个集合(ArrayList)保存Student类的对象(<HashMap <Subject, Integer> rating, String name>)。我必须使用 Stream API 计算特定科目的平均分数。我尝试这样做:
sumOnSubjectInGroup = studentsInGroup.stream()
.filter(e -> e.getRating().entrySet().iterator().next().getKey().equals(subject))
.mapToInt(e -> e.getRating().entrySet().iterator().next().getValue())
.reduce(0, (x, y) -> x + y);
countMarkInGroup = (int) studentsInGroup.stream()
.filter(e -> e.getRating().entrySet().iterator().next().getKey().equals(subject))
.count();
return (double) sumOnSubjectInGroup / countMarkInGroup;
Run Code Online (Sandbox Code Playgroud)
其中 sumOnSubjectInGroup是所有学生的学科分数之和。 countMarkInGroup - 此类标记的数量。 StudentsInGroup是包含所有 Student 对象的集合。 getRating () - 返回一个 HashMap <Subject, Integer> 及其项目和评级列表。但显然我得到了错误的结果
我得到的日期格式类似于LocalDate dateOfBirthday = LocalDate.of(2000, 1, 1);.
我需要从该日期获取该月的日期。我使用dateOfBirthday.getDayOfMonth()并且它有效并返回1,但我需要得到01.
我怎样才能做到呢?