Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Please fix the java code (using eclipse) package hw4p1; import java.io.BufferedR

ID: 3921025 • Letter: P

Question

Please fix the java code (using eclipse)

package hw4p1;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Scanner;

public class MeanMedianHWv2 {

   public static void main(String[] args) throws IOException {
       String[] arrDate = { "", "", "","" };

       Scanner in = new Scanner(System.in);
       Boolean day = true;
       // Year
      
       do
       {
           System.out.println("Enter a year (2016)");
           arrDate[0] = in.next();
          
           if (!arrDate[0].equalsIgnoreCase("2016"))
           {
               System.out.println("Wrong Input. '2016' only! Try again.");
           }
      
           else
           {
               arrDate[0] = "2016";
           }
          
       } while(!arrDate[0].equalsIgnoreCase("2016"));

       // Month
      
       do
       {
           System.out.println("Enter a month (01)");
           arrDate[1] = in.next();
          
           if (!arrDate[1].equalsIgnoreCase("01"))
           {
               System.out.println("Wrong Input. '01' only! Try again!");
           }
      
           else
           {
               arrDate[1] = "01";
           }
          
       } while(!arrDate[1].equalsIgnoreCase("01"));
      
       // Day
      
       do
       {
           System.out.println("Enter a Day (04-10)");
           arrDate[2] = in.next();
           //if (arrDate[2] > 10 || arrDate[2] < 4)
           if (!arrDate[2].equalsIgnoreCase("04"))
           {
               System.out.println("Wrong Inpit. '04' - '10' only! Try again!");
           }
           //else if (arrDate[2] == 4)

      
           else if (!arrDate[2].equalsIgnoreCase("05"))
           {
               System.out.println("Error! Invalid day. Try again!");
           }
      
           else if (!arrDate[2].equalsIgnoreCase("06"))
           {
               System.out.println("Error! Invalid day. Try again!");
           }
          
           else if (!arrDate[2].equalsIgnoreCase("07"))
           {
               System.out.println("Error! Invalid day. Try again!");
           }
          
           else if (!arrDate[2].equalsIgnoreCase("08"))
           {
               System.out.println("Error! Invalid day. Try again!");
           }
          
           else if (!arrDate[2].equalsIgnoreCase("09"))
           {
               System.out.println("Error! Invalid day. Try again!");
           }
           else if (!arrDate[2].equalsIgnoreCase("10"))
           {
               System.out.println("Error! Invalid day. Try again!");
           }
          
          
           else
           {
              
               arrDate[2] = "04";
               day = false;
               arrDate[2] = "05";
               day = false;
               arrDate[2] = "06";
               day = false;
               arrDate[2] = "07";
               day = false;
               arrDate[2] = "08";
               day = false;
               arrDate[2] = "09";
               day = false;
               arrDate[2] = "10";
               day = false;
           }
          
       } while (day);
       do {
           System.out.println("which data? 'w' for wind, 'b' for baro pressure, 't' for temp");
       arrDate[3] = in.next();
       if (!arrDate[3]. equalsIgnoreCase ("w") && !arrDate[3].equalsIgnoreCase("b") && !arrDate[3].equalsIgnoreCase("t"))
       {
           System.out.println("Wrong input. 'w' / 'b' / 't' only! Try again");
       }
       //while(!arrDate[2].equalsIgnoreCase("04") && !arrDate[2].equalsIgnoreCase("05") && !arrDate[2].equalsIgnoreCase("05"));
      
       if (arrDate[3].equalsIgnoreCase("w"))
       {
           System.out.println("w");
       }
           else if (arrDate[3].equalsIgnoreCase("b"))
           {
               System.out.println("b");
           }
           else if (arrDate[3].equalsIgnoreCase("t"))
           {
               System.out.println("t");
           }
       } while (!arrDate[3].equalsIgnoreCase("w") && !arrDate[3].equalsIgnoreCase("b") && !arrDate[3].equalsIgnoreCase("t"));
       in.close();
      
       String Date = arrDate[0] + "_" + arrDate[1] + "_" + arrDate[2];
       System.out.println("------------------------------------");
       System.out.println("What you typed in is below");
       System.out.println("Date" + Date);
       System.out.println("Date :" + arrDate[3]);
       System.out.println("-----------------------------------");
      
       if (arrDate[3].equalsIgnoreCase("w"))
       {
           ArrayList<Double> windGust = getWindData(Date.arrDate);
           System.out.println("Wind Gust");
           System.out.println(" Results of" + Date + "");
           System.out.println("mean :" + mean(windGust));
           System.out.println("Median: " + median(windGust));
           System.out.println("-----------------------------------");
       }
           else {arrDate[3].equalsIgnoreCase("b");
           {
               ArrayList<Double> pressure = getPData(Date, arrDate);
               System.out.println("Pressure");
               System.out.println(" Results of" + Date + "");
               System.out.println("mean :" + mean(pressure));
               System.out.println("Median: " + median(pressure));
               System.out.println("-----------------------------------");
           }
          
           else
           {
               ArrayList<Double> airTemp = getTdata(Date, arrDate);
               System.out.println("Temperature");
               System.out.println(" Results of" + Date + "");
               System.out.println("mean :" + mean(airTemp));
               System.out.println("Median: " + median(airTemp));
               System.out.println("-----------------------------------");
           }
               System.out.println("Printing all data");
               ArrayList<String>weaData = getAllData(Date, arrDate);
               displayData(weaData);
           }
      
//               System.out.println("Sll Data");
//               System.out.println(" Results of" + Date + "");
//               else
//       {
//           ArrayList<Double> tempData = getbaroData(arrDate);
//       }
          
       //ArrayList<Double> barodata = getbaroData(arrDate);
       //ArrayList<Double> airTemp = getData("Air_Temp", arrDate);
       //ArrayList<Double> pressure = getData("Barometric_Press", arrDate);
      
//       System.out.println("Gust: mean " + mean(windGust) + ", median " + median(windGust));
//       //System.out.println("Temp: mean " + mean(airTemp) + ", median " + median(airTemp));
//       //System.out.println("Pressure: mean " + mean(pressure) + ", median " + median(pressure));
//      
//       displayData(weaData);
//   }
  
  
   // GEtting wind data
  
   public static ArrayList<Double> getWindData(String Date, String [] arrDt) throws NumberFormatException, IOException {
       // construct the url if necessary
       //URL dataSource = new URL("https://lpo.dt.navy.mil/data/DM/" + arrDt[0] + "/" + arrDt[0] + "_" + arrDt[1] + "_" + arrDt[2] + "/" + label);  
       //URL url = new URL("http://umd-fmis.d.umn.edu/cpblee/weather.txt");
       //URL url = new URL("http://umd-fmis.d.umn.edu/cpblee/data/2016/2016_01_04/2016_01_04.txt");
String newurl = "http://umd-fmis.d.umn.edu/cpblee/data/" + Date + "/" + Date + ".txt";
       System.out.println("Searching " + newurl);
       URL url = new URL(newurl);
//URL url = new URL("http://umd-fmis.d.umn.edu/cpblee/data/" + arrDt[0] + "/" + arrDt[0] + "_" + arrDt[1] + "_" + arrDt[2] +"/" + arrDt[0] + "_" + arrDt[1] + "_" + arrDt[2] +".txt/");
      
      
       BufferedReader buffer = new BufferedReader(new InputStreamReader(url.openConnection().getInputStream()));
      
       // get wind gust data
       ArrayList<Double> windData = new ArrayList<Double>();
       String inputLine;
       while ((inputLine = buffer.readLine()) != null) {
           windData.add(Double.parseDouble(inputLine.substring(20,22)));
       }
       buffer.close();
       return windData;
   }
  
  
   // Getting temp data.
  
   public static ArrayList<Double> gettempData(String[] arrDt) throws NumberFormatException, IOException {
       // construct the url if necessary
       //URL dataSource = new URL("https://lpo.dt.navy.mil/data/DM/" + arrDt[0] + "/" + arrDt[0] + "_" + arrDt[1] + "_" + arrDt[2] + "/" + label);           URL url = new URL("http://umd-fmis.d.umn.edu/cpblee/data/" + arrDt[0] + "/" + arrDt[0] + "_" + arrDt[1] + "_" + arrDt[2] +".txt/");

       URL url = new URL("http://umd-fmis.d.umn.edu/cpblee/data/" + arrDt[0] + "/" + arrDt[0] + "_" + arrDt[1] + "_" + arrDt[2] +"/" + arrDt[0] + "_" + arrDt[1] + "_" + arrDt[2] +".txt/");
      
       BufferedReader buffer = new BufferedReader(new InputStreamReader(url.openConnection().getInputStream()));
       // alternatively,
       //BufferedReader data = new BufferedReader(new InputStreamReader(dataSource.openStream()));
      
       // get wind gust data
       ArrayList<Double> tempData = new ArrayList<Double>();
       String inputLine;
       while ((inputLine = buffer.readLine()) != null) {
           tempData.add(Double.parseDouble(inputLine.substring(20)));
       }
       buffer.close();
       return tempData;
   }
  
   // Getting Baro Data.
  
   public static ArrayList<Double> getbaroData(String[] arrDt) throws NumberFormatException, IOException {
       // construct the url if necessary
       //URL dataSource = new URL("https://lpo.dt.navy.mil/data/DM/" + arrDt[0] + "/" + arrDt[0] + "_" + arrDt[1] + "_" + arrDt[2] + "/" + label);           URL url = new URL("http://umd-fmis.d.umn.edu/cpblee/data/" + arrDt[0] + "/" + arrDt[0] + "_" + arrDt[1] + "_" + arrDt[2] +".txt/");
       URL url = new URL("http://umd-fmis.d.umn.edu/cpblee/data/" + arrDt[0] + "/" + arrDt[0] + "_" + arrDt[1] + "_" + arrDt[2] +"/" + arrDt[0] + "_" + arrDt[1] + "_" + arrDt[2] +".txt/");
      
       BufferedReader buffer = new BufferedReader(new InputStreamReader(url.openConnection().getInputStream()));
       // alternatively,
       //BufferedReader data = new BufferedReader(new InputStreamReader(dataSource.openStream()));
      
       // get wind gust data
       ArrayList<Double> baroData = new ArrayList<Double>();
       String inputLine;
       while ((inputLine = buffer.readLine()) != null) {
           baroData.add(Double.parseDouble(inputLine.substring(20)));
       }
       buffer.close();
       return baroData;
   }
  
   //GEtting all data
  
   public static ArrayList<String> getAllData(String[] arrDt) throws NumberFormatException, IOException {
       //URL dataSource = new URL("https://lpo.dt.navy.mil/data/DM/" + arrDt[0] + "/" + arrDt[0] + "_" + arrDt[1] + "_" + arrDt[2] + "/" + label);
       //URL url = new URL("http://umd-fmis.d.umn.edu/cpblee/data/2016/2016_01_04/2016_01_04.txt");
       //URL url = new URL("http://umd-fmis.d.umn.edu/cpblee/data/" + arrDt[0] + "/" + arrDt[0] + "_" + arrDt[1] + "_" + arrDt[2] +"/" + arrDt[0] + "_" + arrDt[1] + "_" + arrDt[2] +".txt");
      
      
       URL url = new URL ("http://umd-fmis.d.umn.edu/cpblee/data/2016/ + arrData[0] + “_”+ arrDt[1]” + “_” + arrDt[2]+“/”+“ arrDt[0]” + “_”+ “arrDt[1]” + “_” + arrDt[2]+“.txt”");
      
      
       // http://umd-fmis.d.umn.edu/cpblee/data/2016/2016_01_04/2016_01_04.txt
      
       BufferedReader buffer = new BufferedReader(new InputStreamReader(url.openConnection().getInputStream()));
       //BufferedReader data = new BufferedReader(new InputStreamReader(dataSource.openStream()));
      
       // get date, time, and wind gust data (replicate data)
       ArrayList<String> allData = new ArrayList<String>();
       String inputLine;
       while ((inputLine = buffer.readLine()) != null) {
           allData.add(inputLine.substring(0));
       }
       buffer.close();
       return allData;
   }
  
   public static void displayData(ArrayList<String> a) {
       for (String s : a) {
           System.out.println(s);
       }
   }

   public static double mean(ArrayList<Double> a)
   {
       double sum = 0;
       for (double i : a) {
           sum += i;
       }
       return sum / a.size();
   }

   public static double median(ArrayList<Double> a)
   {
       Collections.sort(a);
       if (a.size() / 2 * 2 == a.size()) {
           return (a.get(a.size() / 2) + a.get(a.size() / 2 - 1)) / 2;
       } else {
           return a.get(a.size() / 2);
       }
   }
}

**** this is the error i am getting:

Exception in thread "main" java.lang.Error: Unresolved compilation problems:
   arrDate cannot be resolved or is not a field
   arrDate cannot be resolved to a variable
   Syntax error on token "else", delete this token
   arrDate cannot be resolved to a variable
   arrDate cannot be resolved to a variable
   Syntax error, insert "}" to complete Block

   at hw4p1.MeanMedianHWv2.main(MeanMedianHWv2.java:153)

Explanation / Answer

There is a minor mistake in the else block you wrote. You just mistyped it seems. An open paranthesis ( should be there in the else if condition, but you used open braces { it seems. Here is the modificeation for you:

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Scanner;
public class MeanMedian {
public static void main(String[] args) throws IOException {
String[] arrDate = { "", "", "","" };
Scanner in = new Scanner(System.in);
Boolean day = true;
// Year
  
do
{
System.out.println("Enter a year (2016)");
arrDate[0] = in.next();
  
if (!arrDate[0].equalsIgnoreCase("2016"))
{
System.out.println("Wrong Input. '2016' only! Try again.");
}
  
else
{
arrDate[0] = "2016";
}
  
} while(!arrDate[0].equalsIgnoreCase("2016"));
// Month
  
do
{
System.out.println("Enter a month (01)");
arrDate[1] = in.next();
  
if (!arrDate[1].equalsIgnoreCase("01"))
{
System.out.println("Wrong Input. '01' only! Try again!");
}
  
else
{
arrDate[1] = "01";
}
  
} while(!arrDate[1].equalsIgnoreCase("01"));
  
// Day
  
do
{
System.out.println("Enter a Day (04-10)");
arrDate[2] = in.next();
//if (arrDate[2] > 10 || arrDate[2] < 4)
if (!arrDate[2].equalsIgnoreCase("04"))
{
System.out.println("Wrong Inpit. '04' - '10' only! Try again!");
}
//else if (arrDate[2] == 4)
  
else if (!arrDate[2].equalsIgnoreCase("05"))
{
System.out.println("Error! Invalid day. Try again!");
}
  
else if (!arrDate[2].equalsIgnoreCase("06"))
{
System.out.println("Error! Invalid day. Try again!");
}
  
else if (!arrDate[2].equalsIgnoreCase("07"))
{
System.out.println("Error! Invalid day. Try again!");
}
  
else if (!arrDate[2].equalsIgnoreCase("08"))
{
System.out.println("Error! Invalid day. Try again!");
}
  
else if (!arrDate[2].equalsIgnoreCase("09"))
{
System.out.println("Error! Invalid day. Try again!");
}
else if (!arrDate[2].equalsIgnoreCase("10"))
{
System.out.println("Error! Invalid day. Try again!");
}
  
  
else
{
  
arrDate[2] = "04";
day = false;
arrDate[2] = "05";
day = false;
arrDate[2] = "06";
day = false;
arrDate[2] = "07";
day = false;
arrDate[2] = "08";
day = false;
arrDate[2] = "09";
day = false;
arrDate[2] = "10";
day = false;
}
  
} while (day);
do {
System.out.println("which data? 'w' for wind, 'b' for baro pressure, 't' for temp");
arrDate[3] = in.next();
if (!arrDate[3]. equalsIgnoreCase ("w") && !arrDate[3].equalsIgnoreCase("b") && !arrDate[3].equalsIgnoreCase("t"))
{
System.out.println("Wrong input. 'w' / 'b' / 't' only! Try again");
}
//while(!arrDate[2].equalsIgnoreCase("04") && !arrDate[2].equalsIgnoreCase("05") && !arrDate[2].equalsIgnoreCase("05"));
  
if (arrDate[3].equalsIgnoreCase("w"))
{
System.out.println("w");
}
else if (arrDate[3].equalsIgnoreCase("b"))
{
System.out.println("b");
}
else if (arrDate[3].equalsIgnoreCase("t"))
{
System.out.println("t");
}
} while (!arrDate[3].equalsIgnoreCase("w") && !arrDate[3].equalsIgnoreCase("b") && !arrDate[3].equalsIgnoreCase("t"));
in.close();
  
String Date = arrDate[0] + "_" + arrDate[1] + "_" + arrDate[2];
System.out.println("------------------------------------");
System.out.println("What you typed in is below");
System.out.println("Date" + Date);
System.out.println("Date :" + arrDate[3]);
System.out.println("-----------------------------------");
  
if (arrDate[3].equalsIgnoreCase("w"))
{
ArrayList<Double> windGust = getWindData(Date.arrDate);
System.out.println("Wind Gust");
System.out.println(" Results of" + Date + "");
System.out.println("mean :" + mean(windGust));
System.out.println("Median: " + median(windGust));
System.out.println("-----------------------------------");
}
else if(arrDate[3].equalsIgnoreCase("b"))
{
ArrayList<Double> pressure = getPData(Date, arrDate);
System.out.println("Pressure");
System.out.println(" Results of" + Date + "");
System.out.println("mean :" + mean(pressure));
System.out.println("Median: " + median(pressure));
System.out.println("-----------------------------------");
}
  
else
{
ArrayList<Double> airTemp = getTdata(Date, arrDate);
System.out.println("Temperature");
System.out.println(" Results of" + Date + "");
System.out.println("mean :" + mean(airTemp));
System.out.println("Median: " + median(airTemp));
System.out.println("-----------------------------------");
}
System.out.println("Printing all data");
ArrayList<String>weaData = getAllData(arrDate);
displayData(weaData);
}
  
// System.out.println("Sll Data");
// System.out.println(" Results of" + Date + "");
// else
// {
// ArrayList<Double> tempData = getbaroData(arrDate);
// }
  
//ArrayList<Double> barodata = getbaroData(arrDate);
//ArrayList<Double> airTemp = getData("Air_Temp", arrDate);
//ArrayList<Double> pressure = getData("Barometric_Press", arrDate);
  
// System.out.println("Gust: mean " + mean(windGust) + ", median " + median(windGust));
// //System.out.println("Temp: mean " + mean(airTemp) + ", median " + median(airTemp));
// //System.out.println("Pressure: mean " + mean(pressure) + ", median " + median(pressure));
//
// displayData(weaData);
// }
  
  
// GEtting wind data
  
public static ArrayList<Double> getWindData(String Date, String [] arrDt) throws NumberFormatException, IOException {
// construct the url if necessary
//URL dataSource = new URL("https://lpo.dt.navy.mil/data/DM/" + arrDt[0] + "/" + arrDt[0] + "_" + arrDt[1] + "_" + arrDt[2] + "/" + label);
//URL url = new URL("http://umd-fmis.d.umn.edu/cpblee/weather.txt");
//URL url = new URL("http://umd-fmis.d.umn.edu/cpblee/data/2016/2016_01_04/2016_01_04.txt");
String newurl = "http://umd-fmis.d.umn.edu/cpblee/data/" + Date + "/" + Date + ".txt";
System.out.println("Searching " + newurl);
URL url = new URL(newurl);
//URL url = new URL("http://umd-fmis.d.umn.edu/cpblee/data/" + arrDt[0] + "/" + arrDt[0] + "_" + arrDt[1] + "_" + arrDt[2] +"/" + arrDt[0] + "_" + arrDt[1] + "_" + arrDt[2] +".txt/");
  
  
BufferedReader buffer = new BufferedReader(new InputStreamReader(url.openConnection().getInputStream()));
  
// get wind gust data
ArrayList<Double> windData = new ArrayList<Double>();
String inputLine;
while ((inputLine = buffer.readLine()) != null) {
windData.add(Double.parseDouble(inputLine.substring(20,22)));
}
buffer.close();
return windData;
}
  
  
// Getting temp data.
  
public static ArrayList<Double> gettempData(String[] arrDt) throws NumberFormatException, IOException {
// construct the url if necessary
//URL dataSource = new URL("https://lpo.dt.navy.mil/data/DM/" + arrDt[0] + "/" + arrDt[0] + "_" + arrDt[1] + "_" + arrDt[2] + "/" + label); URL url = new URL("http://umd-fmis.d.umn.edu/cpblee/data/" + arrDt[0] + "/" + arrDt[0] + "_" + arrDt[1] + "_" + arrDt[2] +".txt/");
URL url = new URL("http://umd-fmis.d.umn.edu/cpblee/data/" + arrDt[0] + "/" + arrDt[0] + "_" + arrDt[1] + "_" + arrDt[2] +"/" + arrDt[0] + "_" + arrDt[1] + "_" + arrDt[2] +".txt/");
  
BufferedReader buffer = new BufferedReader(new InputStreamReader(url.openConnection().getInputStream()));
// alternatively,
//BufferedReader data = new BufferedReader(new InputStreamReader(dataSource.openStream()));
  
// get wind gust data
ArrayList<Double> tempData = new ArrayList<Double>();
String inputLine;
while ((inputLine = buffer.readLine()) != null) {
tempData.add(Double.parseDouble(inputLine.substring(20)));
}
buffer.close();
return tempData;
}
  
// Getting Baro Data.
  
public static ArrayList<Double> getbaroData(String[] arrDt) throws NumberFormatException, IOException {
// construct the url if necessary
//URL dataSource = new URL("https://lpo.dt.navy.mil/data/DM/" + arrDt[0] + "/" + arrDt[0] + "_" + arrDt[1] + "_" + arrDt[2] + "/" + label); URL url = new URL("http://umd-fmis.d.umn.edu/cpblee/data/" + arrDt[0] + "/" + arrDt[0] + "_" + arrDt[1] + "_" + arrDt[2] +".txt/");
URL url = new URL("http://umd-fmis.d.umn.edu/cpblee/data/" + arrDt[0] + "/" + arrDt[0] + "_" + arrDt[1] + "_" + arrDt[2] +"/" + arrDt[0] + "_" + arrDt[1] + "_" + arrDt[2] +".txt/");
  
BufferedReader buffer = new BufferedReader(new InputStreamReader(url.openConnection().getInputStream()));
// alternatively,
//BufferedReader data = new BufferedReader(new InputStreamReader(dataSource.openStream()));
  
// get wind gust data
ArrayList<Double> baroData = new ArrayList<Double>();
String inputLine;
while ((inputLine = buffer.readLine()) != null) {
baroData.add(Double.parseDouble(inputLine.substring(20)));
}
buffer.close();
return baroData;
}
  
//GEtting all data
  
public static ArrayList<String> getAllData(String[] arrDt) throws NumberFormatException, IOException {
//URL dataSource = new URL("https://lpo.dt.navy.mil/data/DM/" + arrDt[0] + "/" + arrDt[0] + "_" + arrDt[1] + "_" + arrDt[2] + "/" + label);
//URL url = new URL("http://umd-fmis.d.umn.edu/cpblee/data/2016/2016_01_04/2016_01_04.txt");
//URL url = new URL("http://umd-fmis.d.umn.edu/cpblee/data/" + arrDt[0] + "/" + arrDt[0] + "_" + arrDt[1] + "_" + arrDt[2] +"/" + arrDt[0] + "_" + arrDt[1] + "_" + arrDt[2] +".txt");
  
  
URL url = new URL ("http://umd-fmis.d.umn.edu/cpblee/data/2016/ + arrData[0] + “_”+ arrDt[1]” + “_” + arrDt[2]+“/”+“ arrDt[0]” + “_”+ “arrDt[1]” + “_” + arrDt[2]+“.txt”");
  
  
// http://umd-fmis.d.umn.edu/cpblee/data/2016/2016_01_04/2016_01_04.txt
  
BufferedReader buffer = new BufferedReader(new InputStreamReader(url.openConnection().getInputStream()));
//BufferedReader data = new BufferedReader(new InputStreamReader(dataSource.openStream()));
  
// get date, time, and wind gust data (replicate data)
ArrayList<String> allData = new ArrayList<String>();
String inputLine;
while ((inputLine = buffer.readLine()) != null) {
allData.add(inputLine.substring(0));
}
buffer.close();
return allData;
}
  
public static void displayData(ArrayList<String> a) {
for (String s : a) {
System.out.println(s);
}
}
public static double mean(ArrayList<Double> a)
{
double sum = 0;
for (double i : a) {
sum += i;
}
return sum / a.size();
}
public static double median(ArrayList<Double> a)
{
Collections.sort(a);
if (a.size() / 2 * 2 == a.size()) {
return (a.get(a.size() / 2) + a.get(a.size() / 2 - 1)) / 2;
} else {
return a.get(a.size() / 2);
}
}
}

And may be you tried some methods which are not here it seems. Anyways, if you still need any refinements, just get back to me.