Якщо метою цього зразка та питання є з'ясувати, як зіставити рядки з потоком ints (наприклад, використовувати потік ints для доступу до індексу в масиві рядків), ви також можете використовувати бокс, а потім передати в int (який потім дозволить отримати доступ до індексу масиву).
int[] numbers = {0, 1, 2, 3};
String commaSeparatedNumbers = Arrays.stream(numbers)
.boxed()
.map((Integer i) -> Integer.toString((int)i))
.collect(Collectors.joining(", "));
Виклик .boxed () перетворює ваш IntStream (потік примітивних ints) у потік (потік об’єктів - а саме цілі об’єкти), який потім прийме повернення об’єкта (в даному випадку об’єкта String) з ваша лямбда. Тут це просто рядкове представлення числа для демонстраційних цілей, але це може так само легко (і більш практично) бути будь-яким рядковим об’єктом - як елемент рядкового масиву, як згадано раніше.
Просто думав, що запропоную ще одну можливість. У програмуванні завжди існує кілька способів виконання завдання. Знайте якомога більше, а потім виберіть той, який найкраще підходить для конкретного завдання, маючи на увазі проблеми продуктивності, інтуїтивність, чіткість коду, ваші уподобання у стилі кодування та найбільш самодокументування.
Щасливого кодування!
IntStream
таStream<Integer>
?