import java.util.ArrayList; import java.util.List; import java.util.function.Function; public class Accumulate { public static <T> List<T> accumulate(List<T> collection, Function<T, T> function) { List<T> newCollection = new ArrayList<>(); for (T item : collection) { newCollection.add(function.apply(item)); } return newCollection; } }