Есть ли существенная разница (в производительности или лучших методах) между этими двумя методами создания потока?
int[] arr2 = {1,2,3,4,5,6};
Arrays.stream(arr2)
.map((in)->in*2)
.mapToObj((in) -> new Integer(in))
.collect(Collectors.toCollection(()-> new ArrayList<>()));
Arrays.stream(arr2)
.map(in->in*2)
.boxed()
.collect(Collectors.toCollection(()-> new ArrayList<>()));
РЕДАКТИРОВАТЬ
Благодаря ответам сообщества Stack я могу добавить некоторые дополнения к вопросуПолнота для новых читателей:
Как уже отмечалось, .boxed()
Метод IntStream определяется как:
@Override
public final Stream<Integer> boxed() {
return mapToObj(Integer::valueOf);
}
Что в основном переопределяет проблему, для которой одно из следующих лучше:
.mapToObj(in -> new Integer(in))
или
.mapToObj(in -> Integer.valueOf(in))