Через некоторые кодирующие каты, размещенные на работе, наткнулся на эту проблему, что я не уверен, как решить. < /p>
Использование потоков Java 8, с учетом списка положительных целых чисел, создайте список целых чисел
, где целое число предшествовало большему значение. < /p>
Код: Выделить всё
[10, 1, 15, 30, 2, 6]
< /code>
Приведенный выше ввод будет вытекать: < /p>
[1, 15, 2]
< /code>
Поскольку 1 предшествует 15, 15 предшествующих 30 и 2 предшествующих 6. < /p>
< /blockquote>
< H2> не потоковой раствор < /h2>
public List findSmallPrecedingValues(final List values) {
List result = new ArrayList();
for (int i = 0; i < values.size(); i++) {
Integer next = (i + 1 < values.size() ? values.get(i + 1) : -1);
Integer current = values.get(i);
if (current < next) {
result.push(current);
}
}
return result;
}
< /code>
Что я попробовал < /h2>
Проблема, которую я столкнулся, заключается в в лямбде. < /p>
return values.stream().filter(v -> v < next).collect(Collectors.toList());
< /code>
Вопрос < /h2>
[list]
[*] Можно ли получить следующее значение в потоке?
[*] Должен ли я использовать карту [/list]
Подробнее здесь: https://stackoverflow.com/questions/300 ... rger-value