Java - 尝试计算来自 Getter 的值的平均值

我从事 Java 应用程序的工作。

有一个Getter对应一个整型字段(分数)。

我的目标是计算该字段的平均值。我决定创建一个数组,然后计算该数组的计数和总和。

但我真的陷入了 Java 语法和“心态”之中。


这是我的片段:


    public void setPersonData2(List<Person> persons2) {

        // Try to make a count of the array

        int[] scoreCounter = new int[100]; // 100 is by default since we don't know the number of values

        for (Person p : persons2) {

            int score = p.getScoreTheo(); // Getter

            Arrays.fill(scoreCounter, score);

            // Try to delete all values equal to zero

            int[] scoreCounter2 = IntStream.of(scoreCounter).filter(i -> i != 0).toArray();

            // Calculate count

            int test = scoreCounter2.length;

            System.out.println(test);

        } 

}

你可以帮帮我吗 ?


慕尼黑的夜晚无繁华
浏览 136回答 3
3回答

慕虎7371278

为什么计算简单平均值太复杂?此外,我不明白为什么你需要数组。int count = 0;int sum = 0;for (Person p : persons2) {&nbsp; &nbsp;++count;&nbsp; &nbsp;sum += p.getScoreTheo();}double average = sum / (double)count;

慕雪6442864

使用流:public void setPersonData2(List<Person> persons2) {&nbsp; &nbsp; double average = persons2.stream().mapToInt(p -> p.getScoreTheo()).average().getAsDouble();&nbsp; &nbsp; //[...]}它引发NoSuchElementException一个空列表。

慕标琳琳

Stream API 有一个内置的平均函数。double&nbsp;average&nbsp;=&nbsp;persons2.stream().collect(Collectors.averagingInt(person&nbsp;->&nbsp;person.getScore()));
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java