I've been working on a Java 8 wrapper class around double[] in my day job, and added the following factory method:
/** * Obtains an instance with entries filled using a function. * <p> * The function is passed the array index and returns the value for that index. * * @param size the number of elements * @param valueFunction the function used to populate the value * @return an array initialized using the function */ public static DoubleMatrix1D of(int size, IntToDoubleFunction valueFunction) { if (size == 0) { return EMPTY; } double[] array = new double[size]; for (int i = 0; i < array.length; i++) { array[i] = valueFunction.applyAsDouble(i); } return new DoubleMatrix1D(array); } View on GitHub here: https://github.com/OpenGamma/Strata/commit/63e73652194a3dd94e37fbc407f4933c10abadda#diff-2a9787868cf0654b4a6a07e75c1a6286R199 It occurs to me that it would be a *very* good idea to add a similar method to List. public static <T> List of(int size, IntFunction<T> valueFunction) { ... } Stephen On 14 October 2015 at 11:39, Stephen Colebourne <scolebou...@joda.org> wrote: > On 14 October 2015 at 10:38, Paul Sandoz <paul.san...@oracle.com> wrote: >>> On 14 Oct 2015, at 06:18, Stuart Marks <stuart.ma...@oracle.com> wrote: >>> I'm not entirely sure what to take from this. If it were clearly >>> exponential, we could say with confidence that above a certain threshold >>> there would be vanishingly little benefit adding more arguments. But since >>> the curve seems to flatten out, maybe this is pushing us to add more pairs >>> than we had originally thought. The current draft API has 8 pairs; that >>> seems to leave a few percent of cases on the table. Obviously we can't get >>> to 100%, but is 97% good enough? > > I'd say 5 is definitely too little, without an easy builder fallback > (as Guava provides). I'd say the right number is between 8 and 10. > > Stephen