Pense um pouco. A sua classe está dizendo que uma pessoa tem vários nomes e endereços. E para cada nome dela, ela responderia num endereço diferente. Bizarro, não?
Se você disser: “Não, mas minha classe pessoa é só um módulo que gerencia os dados de pessoas”. Então, você deixou de usar OO, e está usando análise estruturada, já que o seu foco agora é nos dados, e não nos tipos de dados.
Para o tipo pessoa ser forte, ele deve representar uma única pessoa, como você já havia feito no primeiro post. Se você quiser criar uma lista de pessoas, crie um
List<Pessoa> pessoas = new ArrayList<Pessoa>();
Para obter uma pessoa da lista:
Pessoa p = pessoas.get(0); //obtém a pessoa no índice 0.
Para procurar por nome:
public Pessoa procurarPorNome(String nome) {
for (Pessoa pessoa : pessoas) {
if (pessoa.getNome().equals(nome)) {
return pessoa;
}
}
return null;
}
Para definir a rua da pessoa 10:
pessoas.get(10).setRua("Rua dos bobos");
Para adicionar uma pessoa na lista:
Pessoa p = new Pessoa();
p.setNome("João da silva");
pessoas.add(p);
Para excluir todas as pessoas de uma determinada cidade da lista:
public void excluirPessoas(String cidade) {
Iterator<Pessoa> it = pessoas.iterator();
while (it.hasNext()) {
Pessoa pessoa = it.next();
if (pessoa.getCidade().equals(nome)) {
it.remove();
}
}
}
E por aí vai…