в Java 8, потоки обеспечивают мощный и краткий способ манипулировать и обработать данные. Одной из общих операций является обращение поток. В этой статье рассматриваются два метода достижения этого: конкретное решение для реверсирования Intstream и общего подхода для изменения любого потока объектов. Intstream, может быть создан пользовательский метод, чтобы отобразить диапазон значений в обратном порядке. Например, если у нас есть Intstream в диапазоне от -5 до 0, это обратное, это приведет к потоку от 0 до -5. Это может быть достигнуто с помощью следующего кода:
static intstream revrange (int от, int to) { вернуть intstream.range (от, до) .map (i -> to - i от - 1); }
этот метод избегает бокса и сортировки, что приводит к более эффективному решению.
generic потоковой реверсии
static IntStream revRange(int from, int to) { return IntStream.range(from, to) .map(i -> to - i from - 1); }для реверсирования потоков любого типа объекта, Можно использовать два подхода. Первый включает в себя хранение элементов потока в массиве и чтение их в обратном порядке:
@Puppresswarnings ("uncecked") static
] Этот подход прост, но требует создания промежуточного массива. > input = ...;;
Список
стоит отметить, что нет «правильного» способа обратить вспять поток без хранения элементов. Тем не менее, представленные методы обеспечивают эффективные и универсальные решения как для конкретного изменения Intstream, так и для общего реверса потока.
]
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3