APPM 2710 Java I 
MeanOne.java


/*Mark Copeland
  MeanOne.java
  Sept 24, 2001
*/
import java.math.*;
import java.util.*;

public class MeanOne
{
   public static void print(int [] a)
   {
      for(int i=0; i< a.length; i++) {
         System.out.print(a[i] + "  ");
         if((i+1)%5 == 0) System.out.println();
      }
      System.out.println();
   } //end print method

   public static int[] randomarrayInt(int high, int low, int size)
   {
      int numvals = high-low+1;     //number integer values
      int [] a = new int[size];

      for( int i=0; i < size; i++)
         a[i] = (int)(Math.random()*numvals + low);

      return a;
   } //end randomarrayInt

   public static double arraymean(int [] a)
   {
      double sum = 0.0;
      for(int i=0; i < a.length; i++)
        sum += a[i];
      return(sum/a.length);
   }

   public static double arraymedian(int [] a)
   {
      double Amedian;
      if((a.length % 2) > 0)   //odd length
         Amedian = a[(a.length + 1)/2 - 1];   //-1 to shift for zero index
      else {                   //even length
         int [] temparray = new int[2];
         System.arraycopy(a, a.length/2 - 1, temparray, 0, 2);
         Amedian = arraymean(temparray);
      }
      return(Amedian);
   }

   public static double trimmean(int [] a)
   {
      int trim = (int)(0.1*a.length);
      int [] temparray = new int[a.length - 2*trim];
      System.arraycopy(a, trim, temparray, 0, a.length - 2*trim);
      return (arraymean(temparray));
   }

   public static void main (String [] args)
   {
      int upper = 50;
      int lower = 10;
      int arraysize = 9;

      int [] irandom = randomarrayInt(upper, lower, arraysize);
      print(irandom);

      Arrays.sort(irandom);
      System.out.println("The mean is  " + arraymean(irandom));
      System.out.println("The median is " + arraymedian(irandom));
      System.out.println("The trimmed mean is " + trimmean(irandom));
   } // end of main
} //end os MeanOne class