public static double[] toArray(Collection<? extends Number> collection) {
    if (collection instanceof DoubleArrayAsList) {
      return ((DoubleArrayAsList) collection).toDoubleArray();
    }

    Object[] boxedArray = collection.toArray();
    int len = boxedArray.length;
    double[] array = new double[len];
    for (int i = 0; i < len; i++) {
      // checkNotNull for GWT (do not optimize)
      array[i] = ((Number) checkNotNull(boxedArray[i])).doubleValue();
    }
    return array;
  }
public static double [ ] toArray ( Collection < ? extends Number > collection ) { if ( collection instanceof DoubleArrayAsList ) { return ( ( DoubleArrayAsList ) collection ) . toDoubleArray ( ) ; } Object [ ] boxedArray = collection . toArray ( ) ; int len = boxedArray . length ; double [ ] array = new double [ len ] ; for ( int i = 0 ; i < len ; i ++ ) { array [ i ] = ( ( Number ) checkNotNull ( boxedArray [ i ] ) ) . doubleValue ( ) ; } return array ; }
Returns an array containing each value of {@code collection}, converted to a {@code double}
value in the manner of {@link Number#doubleValue}.

<p>Elements are copied from the argument collection as if by {@code collection.toArray()}.
Calling this method is as thread-safe as calling that method.

@param collection a collection of {@code Number} instances
@return an array containing the same values as {@code collection}, in the same order, converted
to primitives
@throws NullPointerException if {@code collection} or any of its elements is null
@since 1.0 (parameter was {@code Collection<Double>} before 12.0)