I coded a method to find me the median in an Array I know nothing about, besides it's carrying doubles. It's also working, but as I don't know how big it might be, I wonder if what I'm doing is efficient. Should I check the Array if it's unsorted instead of directly sorting it? Or would that be an unneccessary step to do if I'm going to sort it anyway? Is the way I sort it recommended or are there better ways I'm missing out on?
//I calculate the median and return it.
public static double median(double[] vals) { //(un-)sorted Array
    double median = 0;
    sortedVals = Arrays.stream(vals).sorted().toArray(); //sorts low to high
    int middleOfArray = (sortedVals.length) / 2 - 1;
    int secondMiddleOfUnevenArray = (sortedVals.length) / 2;
    if(sortedVals.length % 2 == 1) { //uneven values in Array
        median = sortedVals[middleOfArray] + 1;
    } else if(sortedVals.length % 2 == 0) { //even values in Array
        median = (sortedVals[middleOfArray] + sortedVals[secondMiddleOfUnevenArray]) / 2;
    } else {
        System.out.println("Method median: error");
    }
    return median;
}
 
    