簡體   English   中英

如何計算 OOP 中的平均值?

[英]How to calculate the average in OOP?

我知道如何計算程序編程中的平均值,除了在 OOP 我不知道如何做到這一點:

我有 2 個對象,我想計算平均年齡:

class Main {
  public static void main(String[] args) {
    List<Player> players = new ArrayList<Player>();

    players.add(new Player("Eric", 31, true));
    players.add(new Player("Juliette", 28, false));

在我的 class 播放器中,我有這個

public class Player {

  public String name;
  public int age; 
  public boolean sex;

  public Player(String name, int age, boolean sex){
    this.name = name;
    this.age = age;
    this.sex = sex;
  }

在我的 CalculateAverage() 方法中,我看不到如何做到這一點? 我的循環有問題..

public static void CalculateAverage(List <Player> players){
    int sumAge =  0;

    for(Player player : players){
            
    }
  } 

方法一:

在你的循環內對所有年齡求和,然后將總和除以年齡總數( players.size()

 List<Player> players = new ArrayList<Player>();

    players.add(new Player("Eric", 31, true));
    players.add(new Player("Juliette", 28, false));
    double sum = 0;
    for(Player player : players){
        sum = sum +player.age;
    }
    double average = sum/players.size();
    System.out.println(average);
   

方法二:

利用 Java 8 個流。 將您的列表轉換為流( players.stream() )然后 map 將您的年齡翻倍( mapToDouble() )然后調用平均值。

*NB average()返回一個可選值。 使用 get( optionalAverage.get() ) 獲取實際值。

 List<Player> players = new ArrayList<Player>();
    players.add(new Player("Eric", 31, true));
    players.add(new Player("Juliette", 28, false));
    final OptionalDouble optionalAverage = players.stream().mapToInt(Player::getAge).average();
    System.out.println(optionalAverage);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM