Jeśli celem tego przykładu i pytania jest ustalenie, jak odwzorować ciągi znaków na strumień liczb całkowitych (na przykład użycie strumienia liczb całkowitych w celu uzyskania dostępu do indeksu w tablicy ciągów), możesz również użyć boksu, a następnie rzutować int (co umożliwiłoby wtedy dostęp do indeksu tablicy).
int[] numbers = {0, 1, 2, 3};
String commaSeparatedNumbers = Arrays.stream(numbers)
.boxed()
.map((Integer i) -> Integer.toString((int)i))
.collect(Collectors.joining(", "));
Wywołanie .boxed () konwertuje Twój IntStream (strumień pierwotnych liczb całkowitych) na Stream (strumień obiektów - mianowicie obiekty typu Integer), który następnie zaakceptuje zwrot obiektu (w tym przypadku obiektu String) z twoja lambda. Tutaj jest to po prostu ciąg znaków reprezentujący liczbę do celów demonstracyjnych, ale równie łatwo (i bardziej praktycznie) mógłby to być dowolny obiekt ciągu - taki jak element tablicy ciągów, jak wspomniano wcześniej.
Pomyślałem, że zaoferuję inną możliwość. W programowaniu zawsze istnieje wiele sposobów wykonania zadania. Poznaj tyle, ile możesz, a następnie wybierz ten, który najlepiej pasuje do danego zadania, mając na uwadze kwestie wydajności, intuicyjność, przejrzystość kodu, preferencje dotyczące stylu kodowania i najbardziej samodokumentujące się.
Miłego kodowania!
IntStream
iStream<Integer>
?