Galera, minha primeira pergunta aqui, espero estar fazendo direito. Estou fazendo um projeto pra estrutura de dados, e preciso fazer uma relação de amizade. Eu pensei assim: todos os meus amigos são usuários, mas nem todos os usuários, são meus amigos. Pensei em fazer uma lista de amigos pra cada usuário, mas não sei como fazer isso ou se isso está certo. Alguém pode me ajudar? Obrigado desde já.
Obs: eu não posso usar banco de dados, mas posso usar ArrayList.
Minha dúvida seria como montar essa estrutura. A ArrayList eu sei montar. Só não tô conseguindo desenvolver o que eu preciso fazer. Não tô conseguindo imaginar sabem como é?
public class Usuario {
private String nome;
private Integer idade;
private List<Usuario> amigos;
//outros atributos...
//gets e sets
}
No caso você pode criar os usuários e dentro de um ArrayList de Usuário você poderia adicionar aqueles que são amigos, no exemplo abaixo:
public class Main {
public static void main(String[] args) {
Usuario joao = new Usuario();
Usuario maria = new Usuario();
Usuario pedrinho = new Usuario();
List<Usuario> amigos = new ArrayList<>();
amigos.add(pedrinho);
maria.setAmigos(amigos);
}
}
A ideia aqui é simular o comportamento de bancos de dados, pois você vai utilizar alocação dinâmica de memória para manter (adicionar, editar, pesquisar e excluir) registros.
A interface List, que é parte da API Collections do java, tem funcionalidades que permitem isso, sem maiores problemas. A implementação ArrayList garante que isso seja feito.
Bom, como o @LucasFurlaneto disse, você pode criar o objeto Usuario e adicionar os que são amigos na lista do objeto que tem aqueles amigos.