Llenar una matriz multidimensional utilizando una secuencia

Soy nuevo en Java 8 y actualmente no puedo comprender Streams por completo, ¿es posible llenar una matriz usando las operaciones funcionales de Stream? Este es un código de ejemplo de cómo lo haría con un estándar para loop:

public static void testForLoop(){
    String[][] array = new String[3][3];
    for (int x = 0; x < array.length; x++){
        for (int y = 0; y < array[x].length; y++){
            array[x][y] = String.format("%c%c", letter(x), letter(y));
        }
    }               
}

public static char letter(int i){
    return letters.charAt(i);
} 

Si es posible, ¿cómo lo haría usando Stream? Si es posible, ¿es conveniente (rendimiento y legibilidad inteligente)?

Respuestas a la pregunta(4)

Su respuesta a la pregunta