Ajuda com Collections

Olá pessoal, estou aqui em busca de ajuda para resolver a seguinte questão:

Inserir: Cadastrar aluno passando os dados de matrícula, nome, idade, curso. Todos os campos são obrigatórios e será necessário exibir mensagens de erro, caso os valores não estejam preenchidos e corretos.
Filtrar: Realizar pesquisa de alunos podendo passar como parâmetro quaisquer dados de um aluno, retornando todos os alunos que atenderem aos argumentos de pesquisa.
Alterar: Alterar dados de um aluno resultante de uma pesquisa realizada.
Excluir: Excluir um aluno resultante de uma pesquisa realizada.

Como irei filtrar uma collection para que possa realizar as opções de filtrar, excluir e alterar?

Deem uma luz aew galeraaa !!!

Então, pelo que entendi sua dificuldade está em filtrar os resultados né

faz mais ou menos assim:

public List<Aluno> filtrar(Aluno aluno){ List<Aluno> correspondentes = new ArrayList<Aluno>(); for(Aluno a : colecaoAlunos){ if(aluno.match(a)) correspondentes.add(a); } return correspondentes; } //E na classe aluno public boolean match(Aluno a){ return this.getNome().equals(a.getNome()) || this.getMatricula() == a.getMatricula() || this.getIdade() == a.getIdade() //Por aí vai, compara todos os campos, se algum "bater" vai retornar true xD }

Ok, irei testar, e sim a minha duvida é filtrar os alunos, para a partit dessa filtragem exclui-los e atualiza-los.

O rapaz me explica este public ai no começo !

[quote=drigo.angelo]Então, pelo que entendi sua dificuldade está em filtrar os resultados né

faz mais ou menos assim:

public List<Aluno> filtrar(Aluno aluno){ List<Aluno> correspondentes = new ArrayList<Aluno>(); for(Aluno a : colecaoAlunos){ if(aluno.match(a)) correspondentes.add(a); } return correspondentes; } //E na classe aluno public boolean match(Aluno a){ return this.getNome().equals(a.getNome()) || this.getMatricula() == a.getMatricula() || this.getIdade() == a.getIdade() //Por aí vai, compara todos os campos, se algum "bater" vai retornar true xD }[/quote]
É mais ou menos assim:

[size=20]*[/size] Em algum lugar do seu programa (AlunoBO, sei la) você vai ter um método que filtra os alunos certo?
Eu supus que você tem uma coleção de alunos (um vetor, array, arraylist, etc…) com todos os alunos

Então, esse é o primeiro método ali, public List<Aluno> filtrar(Aluno aluno) retorna um List com todos os alunos que tem algum atributo igual ao aluno que ele recebe como parâmetro. Veja como usar esse método:

[code]…
//Aqui to pedindo para digitar os dados para fazer a busca
System.out.println(“Entre com os dados para realizar a busca”);
System.out.println("Nome: ");
String nome = console.read();

System.out.println("Matricula: ");
String matricula = console.read();

System.out.println("Idade: ");
int idade = console.readInt();

System.out.println("Curso: ");
String curso = console.read();

//Cria um aluno com os dados digitados pelo usuario e faz a pesquisa
Aluno pesquisa = new Aluno(matricula, nome, idade, curso);
List alunosQueSatisfazemAPesquisa = alunoBO.filtrar(pesquisa);

//Imprime os alunos que satisfazem a pesquisa
for(Aluno x : alunosQueSatisfazemAPesquisa){
System.out.println("Nome: "+ x.getNome());
System.out.println("Matricula: " + x.getMatricula());
System.out.println("Idade: " + x.getIdade());
System.out.println("Curso: " + x.getCurso());
}[/code]
Nesse caso o metodo filtrar estaria em uma classe AlunoBO, não sei onde você vai coloca-lo
Esse método deve comparar o aluno que foi criado com os dados que o usuario digitou com cada aluno que voce cadastrou, nesse caso supus que voce tem uma coleção de alunos, daí você vai passando em cada aluno e chamando o método match() em cada um

for(Aluno a : colecaoAlunos){ if(aluno.match(a)) correspondentes.add(a); }

[size=20]*[/size]Esse outro método aí, match(), compara cada atributo do aluno e compara com o outro, caso algum for igual, ele retorna true :smiley:

OBS: Eu não implementei completamente nada aqui, até porque não sei dos detalhes do seu projeto (se tem banco de dados, onde esses alunos estão salvos, o que o aluno tem/ etc… isso foi só uma idéia mesmo, para você ir continuando :stuck_out_tongue:

Espero ter contribuído! []'s