Solucionado (ver solução)
Solucionado
(ver solução)
7
respostas

Qual utilização real de métodos como por exemplo, contais() e sort()

Na aula você fala que é um exemplo bem real o exemplo de Curso e alunos, mas em uma aplicação real os alunos não estariam em um banco de dados ao invés de todos na memória? Nesse caso o o método estaMatriculado() deveria fazer uma query no banco de dados para verificar se o aluno realmente está matriculado ao invés de utilizar o método contains().

Eu sei que o curso é sobre collection e Banco de dados é outra história, mas a minha duvida é a seguinte: qual a real utilização por exemplo de contains() ou até mesmo sort() para uma List<>, uma vez que em aplicações reais não carregamos em memória o banco de dados todo para fazer sentido o uso de tais métodos?

7 respostas

No mundo real a gente chama o conteúdo do banco de dados numa List e então usamos o contains e o sort encima dessa lista.

A aplicação que eu trabalho não foi planejada desse jeito e na verdade não vejo muito sentido, se você tem 100.000 Alunos no banco de dados você carrega 100.000 registros para dentro de uma Collection para depois usar o contains() ou para depois usar o o sort() no caso de uma List<>? Não é mais fácil já filtrar no banco utilizando where ou usar order by?

Acredito que depende, pois em seu exemplo os dados estão persistidos no banco, e já que fará uma consulta já ordena na própria query mesmo, porém quando os dados estão ainda em memória, dependendo de como estiver implementado, vai utilizar os métodos das Collections.

Ah sim, para grandes números de registros (tipo mais ou menos 1 bilhão) não aconselho usar o modelo DAO e sim usar SQL pra dar uma filtrada legal.

André, até 1 bilhão você carrega tudo em memória? Você tem utilizado assim com um número grande de registros tipo uns 500 mil e têm tido uma boa performance?

Enzo, pois é... Acaba que o mundo real é bem diferente!

solução!

Sim tenho tido boa perfomance. Lembrando que 1 GB de memória contém 1 bilhão de letras.