Мне нужно пройти курс лечения на странице списка.
Поэтому мне интересно, что лучше (в производительности и в хорошей практике) между:
public List<Other> function(List<Something> somethingList,
int offset, int pageSize) {
return somethingList.stream().skip(offset * pageSize).limit(pageSize)
.map(s -> doSomething(s)).collect(Collectors.toList());
}
или:
public List<Other> function(List<Something> somethingList,
int offset, int pageSize) {
return somethingList.subList(offset * pageSize, offset * pageSize + pageSize)
.stream().map(s -> doSomething).collect(Collectors.toList());
}
Я добровольно пропустил проверку смещения и размера страницы.
Редактировать: Это не жизненная необходимость производительности, мой вопрос также о ясности, обслуживании и хорошей практике. Я предпочитаю способ потока, особенно потому, что он требует меньше проверки. Но я предпочитаю быть уверенным, что это не реальная потеря производительности или менее удобные / чистые вещи.