Hi Wes,
this works as designed and is described in the Javadoc:
Returns an iterable that performs the given transformation for each element of original when requested. The mapping is done lazily. That is, subsequent iterations of the elements in the iterable will repeatedly apply the transformation. That is, subsequent iterations of the elements in the list will repeatedly apply the transformation.
#map returns a view on the original list / iterable. This allows for composition of various mappings / operations, e.g. filter without copying the complete list.
If you want a stateful representation of the mapping, you may use
val copy = newArrayList
copy += list.map[..]
Best regards,
Sebastian