小编rob*_*801的帖子

从 Stream Api 计算 Map 中值的总和

我是一个完全的新手,所以我请你不要说太多脏话)

有一个集合(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> 及其项目和评级列表。但显然我得到了错误的结果

java java-stream

0
推荐指数
1
解决办法
697
查看次数

从 LocalDate 获取月份中的某天(带前导零)

我得到的日期格式类似于LocalDate dateOfBirthday = LocalDate.of(2000, 1, 1);.

我需要从该日期获取该月的日期。我使用dateOfBirthday.getDayOfMonth()并且它有效并返回1,但我需要得到01.

我怎样才能做到呢?

java java-8 localdate

-2
推荐指数
1
解决办法
6578
查看次数

标签 统计

java ×2

java-8 ×1

java-stream ×1

localdate ×1