Arrays methods

Brian Goetz brian.goetz at oracle.com
Sat Mar 16 07:00:31 PDT 2013


Calling this "replaceAll" would require that the lambda not simply be 
index -> value, but (index, oldValue) -> newValue.

On 3/16/2013 7:28 AM, Arne Siegel wrote:
> A slight analogy between Array<T> and Map<int, T> leads to: Arrays.replaceAll(array, fn)
>
>
> On 13 Mar 2013 at 17:44, Brian Goetz wrote:
>
>> Fill implies "set all elements"; a set name would probably have to say
>> "setAll":
>>
>>     Arrays.setAll(array, fn)
>>     Arrays.parallelSetAll(array, fn)
>>
>> OK?
>>
>> On 3/13/2013 5:30 PM, Joe Bowbeer wrote:
>>> I agree with the critique of 'fill' names.
>>>
>>> I like 'set' names.
>>>
>>>
>>>
>>>
>>> On Wed, Mar 13, 2013 at 1:28 PM, Mike Duigou <mike.duigou at oracle.com
>>> <mailto:mike.duigou at oracle.com>> wrote:
>>>
>>>      Arrays.indexFill(array, fn)
>>>      Arrays.indexedFill(array, fn)
>>>      Arrays.fillIndexed(array, fn)
>>>      Arrays.indexedSet(array, fn)
>>>
>>>      I think it might be better to stay away from "fill" names because
>>>      the current fill methods all have the property that every array
>>>      element is assigned the same value. This new operation allows a
>>>      different value to be assigned to each element.
>>>
>>>      Mike
>>>
>>>      On Mar 13 2013, at 12:25 , Brian Goetz wrote:
>>>
>>>       >> If we added
>>>       >>
>>>       >>      <T> void fill(T[], IntFunction<T> gen)
>>>       >>
>>>       >> then existing calls to
>>>       >>
>>>       >>   fill(array, null)
>>>       >>
>>>       >> would become ambiguous.  Doh.  (But the other 17 forms are not
>>>       >> problematic.)
>>>       >>
>>>       >> Any suggestions for alternate names?
>>>       >
>>>       > Arrays.generate(array, fn)
>>>       > Arrays.fillApplying(array, fn)
>>>       > Arrays.initialize(array, fn)
>>>       > Arrays.setAll(array, fn)
>>>       >
>>>       > ...
>>>
>>>
>
>


More information about the lambda-libs-spec-observers mailing list