亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Java - 嘗試計算來自 Getter 的值的平均值

Java - 嘗試計算來自 Getter 的值的平均值

慕尼黑的夜晚無繁華 2023-12-13 10:42:49
我從事 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);        } }你可以幫幫我嗎 ?
查看完整描述

3 回答

?
慕虎7371278

TA貢獻1802條經驗 獲得超4個贊

為什么計算簡單平均值太復雜?此外,我不明白為什么你需要數組。


int count = 0;

int sum = 0;

for (Person p : persons2) {

   ++count;

   sum += p.getScoreTheo();

}


double average = sum / (double)count;


查看完整回答
反對 回復 2023-12-13
?
慕雪6442864

TA貢獻1812條經驗 獲得超5個贊

使用流:


public void setPersonData2(List<Person> persons2) {

    double average = persons2.stream().mapToInt(p -> p.getScoreTheo()).average().getAsDouble();

    //[...]

}

它引發NoSuchElementException一個空列表。


查看完整回答
反對 回復 2023-12-13
?
慕標琳琳

TA貢獻1830條經驗 獲得超9個贊

Stream API 有一個內置的平均函數。

double average = persons2.stream().collect(Collectors.averagingInt(person -> person.getScore()));


查看完整回答
反對 回復 2023-12-13
  • 3 回答
  • 0 關注
  • 202 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號