Get the Mean of an Array in Java

The challenge

It’s the academic year’s end, fateful moment of your school report. The averages must be calculated. All the students come to you and entreat you to calculate their average for them. Easy ! You just need to write a script.

Return the average of the given array rounded down to its nearest integer.

The array will never be empty.

Test cases

import org.junit.Test;
import static org.junit.Assert.assertEquals;
import org.junit.runners.JUnit4;


public class SolutionTest {
  	@Test
	public void simpleTest() {
		assertEquals(2,School.getAverage(new int[] {2,2,2,2}));
		assertEquals(3,School.getAverage(new int[] {1,2,3,4,5}));
		assertEquals(1,School.getAverage(new int[] {1,1,1,1,1,1,1,2}));
	}
  

  
}

The solution in Java

Option 1:

public class School{

  public static int getAverage(int[] marks){
    int total = 0;
    
    for (int i=0; i<marks.length; i++) {
      total += marks[i];
    }
    
    return total/marks.length;
  }

}

Option 2 (using streams):

import java.util.*;
public class School{

  public static int getAverage(int[] marks){
    return (int) Arrays.stream(marks).average().orElse(Double.NaN);
  }

}

Option 3 (using streams (alternative)):

import java.util.stream.*;

public class School{

  public static int getAverage(int[] marks){
    return (IntStream.of(marks).sum())/marks.length;
  }

}