Olá!!
Gostei muito desse exemplo e me surgiu uma melhoria, onde poderíamos utilizar o '.copy' disponível no 'data class', segue exemplo:
fun atualizar(form: AtualizacaoTopicoForm) {
var topico = topicos.stream().filter { t ->
t.id == form.id
}.findFirst().get()
topicos = topicos.minus(topico).plus(
topico.copy(
titulo = form.titulo,
mensagem = form.mensagem)
)
}
Alteração exatamente no trexo onde temos: topico.copy(...)