Java 8/9: ¿Se puede asignar un carácter en una cadena a sus índices (usando secuencias)?

Dado unString s y unchar c, Tengo curiosidad si existe algún método para producir unList<Integer> list des (donde los elementos dentrolist representar los índices dec dentros)

Un cierre, peroincorrecto enfoque sería:

public static List<Integer> getIndexList(String s, char c) {
    return s.chars()
            .mapToObj(i -> (char) i)
            .filter(ch -> ch == c)
            .map(s::indexOf) // Will obviously return the first index every time.
            .collect(Collectors.toList());
}

Las siguientes entradas deberían producir la siguiente salida:

getIndexList("Hello world!", 'l') -> [2, 3, 9]

Respuestas a la pregunta(4)

Su respuesta a la pregunta