Я должен реализовать метод map()
ниже, который получает список массивов и объект Function<T, R>
и возвращает список массивов, состоящий из результатов применения функции к заданным элементам.
следующий код печатает 1,2,3
вместо квадратов этих чисел. Почему код не работает? Мне нужна причина неудачи, а не правильные решения.
import java.util.ArrayList;
import java.util.function.Function;
import java.util.stream.Collectors;
import java.util.stream.IntStream;
public class Mapper {
public static ArrayList<Integer> map(ArrayList<Integer> nums, Function<Integer, Integer> mapper) {
ArrayList<Integer> result = new ArrayList<>(nums);
result.forEach(e -> e = mapper.apply(e));
return result;
}
public static void main(String [] args){
ArrayList<Integer> nums = IntStream.rangeClosed(1, 3).boxed().collect(Collectors.toCollection(ArrayList::new));
ArrayList<Integer> squares = Mapper.map(nums, z -> z * z);
squares.forEach(System.out::println);
}
}