Recomendação colaborativa
Em sistemas de recomendação de streaming, é comum sugerir filmes baseados no que usuários semelhantes assistiram. Com listas aninhadas, você pode armazenar o histórico de cada usuário e compará-los sem depender de classes complexas como HashMap. Essa abordagem simples é a base de filtros colaborativos manuais.
O PROBLEMA
ArrayList<ArrayList<String>>. Recomende filmes com base em filmes em comum.
EXEMPLO
Recomendado para Ana: F4
SOBRE O CONCEITO
Aqui você usa um ArrayList<ArrayList<String>> para representar uma lista de usuários, onde cada usuário tem sua própria lista de filmes. Para recomendar, você percorre todos os usuários, verifica se há filmes em comum com o usuário alvo usando contains e, se houver, adiciona filmes desse usuário que o alvo ainda não viu. Um erro comum é recomendar um filme que o usuário já assistiu — isso acontece quando você não checa se a lista do alvo contém o filme candidato antes de adicioná-lo. Outro erro é recomendar o mesmo filme várias vezes de diferentes usuários; por isso, é importante verificar também se o filme já está na lista de recomendados.
RESOLUÇÃO