Si el propósito de esta muestra y pregunta es averiguar cómo asignar cadenas a una secuencia de ints (por ejemplo, usar una secuencia de ints para acceder a un índice en una matriz de cadenas), también puede usar el boxeo y luego enviar a un int (que luego permitiría acceder al índice de la matriz).
int[] numbers = {0, 1, 2, 3};
String commaSeparatedNumbers = Arrays.stream(numbers)
.boxed()
.map((Integer i) -> Integer.toString((int)i))
.collect(Collectors.joining(", "));
La llamada .boxed () convierte su IntStream (una secuencia de entradas primitivas) en una secuencia (una secuencia de objetos, es decir, objetos Integer) que luego aceptará la devolución de un objeto (en este caso, un objeto String) de tu lambda. Aquí es solo una representación de cadena del número con fines de demostración, pero podría ser con la misma facilidad (y de manera más práctica) cualquier objeto de cadena, como el elemento de una matriz de cadenas como se mencionó anteriormente.
Solo pensé en ofrecer otra posibilidad. En programación, siempre hay múltiples formas de realizar una tarea. Conozca tantos como pueda, luego elija el que mejor se adapte a la tarea en cuestión, teniendo en cuenta los problemas de rendimiento, la intuición, la claridad del código, sus preferencias en el estilo de codificación y la mayor documentación posible.
¡Feliz codificación!
IntStream
yStream<Integer>
?