É o seguinte, eu estou fazendo um projecto na faculdade em que tenho que criar um programa que cria utilizadores(nome e coordenadas de localização) e que associa outros utilizadores como contactos, para que os mesmos possam enviar convites de eventos aos seus contactos. Eu já tenho uma boa parte feita mas estou com um problema na Main(). Vou deixar aqui um pequeno resumo das classes já criadas:
O meu problema é o seguinte, após criar vários utilizadores como posso fazer para mete-los como contactos uns dos outros? Ou seja criar uma lista de contactos para cada utilizador.
assim você vai ter um array com todos os contatos do Utilizador.
L
luiji1790
Não percebi. Com esse array já posso adicionar por exemplo o utilizador y como sendo contacto do utilizador x?
rodrigoblb
Quando criar um Utilizador você vai ter um array onde você vai poder armazenar os Utilizadores que são contatos do seu Utilizador.
Por exemplo:
publicclassMain(){publicstaticvoidmain(String[]args){Utilizadorx=newUtilizador("João","asd");Utilizadory=newUtilizador("Maria","dsf");Utilizadorz=newUtilizador("Rodrigo","xcz");/*digamos que os utilizadores y e z são contatos do utilizador x você adiciona os utilizadores y e z no array do utilizador x*/x.setContatos(y);x.setContatos(z);/*quando usar o getContatos você vai ter todos os contatos do utilizador*/ArrayList<Utilizador>contatosUtilizadorX=x.getContatos();}
isso é um exemplo de abordagem,
espero ter ajudado, qualquer coisa é só falar
guilhermehkr
Realmente se for um self join que deseja, o que o rodrigo escreveu esta certíssimo.
Este tipo de relação que deseja fazer, em banco de dados chama-se self join. Você deseja relacionar um registro com outro registro da própria tabela.
D
danilovicente
Contato e Utilizador têm os mesmo métodos? Pois pelo que eu entendi você quer colocar os utilizadores como contatos e depois criar um array de contatos. Mas se você colocar um array de contatos passando utilizadores não vai dar certo. Em utilizador você cria um ArrayList<Contacto> contactos = new ArrayList<Contacto>();
Aí sempre que você quiser armazenar um contato você faz um contactos.add(Aqui seu contato)
Lucas_Abbatepaolo
Uma lista ou array resolve seu problema…
já no caso da persistencia creio que não seja um self join ja que seu contato pode ter varios contatos…provavelmente vc terá que criar uma tabela n X n para armazenar…
[]'s
rodrigoblb
Verdade, não tinha visto que ele tinha criado uma classe Contacto.
Não sei bem como ele pensou a arquitetura do projeto dele, mas eu acho que ele não precisa da classe Contacto, a classe Utilizador
já é o suficiente.
L
luiji1790
Ok ja tou a compreender, digam me so uma coisa, com esse tipo de implementação eu posso fazer com que cada diferente utilizador tenha a sua lista de contactos independente da dos outros?
Exemplo: Utilizador 1 tem como contactos o utl 2, 3, 4 e 5.
Utilizador 2 tem como contactos o 3 e o 4.
rodrigoblb
Sim, cada utilizador vai ter sua própria lista de contatos (que é o array) independente da dos outros.
L
luiji1790
Ok esta tarde quando sair da faculdade vou implementar, qualquer problema venho aqui! Muito obrigado!
L
luiji1790
Estou com um problema! Ao tentar implementar esta parte:
nomeDoUtilizador.setContatos(nomeDoContacto);
dá erro pois o método não é definido para String. Nao me expliquei bem mas a unica coisa que se utiliza ao adicionar um contacto é o nome do mesmo e não o nome e as coordenadas. Por isso so preciso de adicionar uma string com o nome…
Se você quiser acessar as informações do objeto é como o Danilo disse o ideal seria salvar o objeto Utilizador!
D
danilovicente
rodrigoblb:
O ArrayList tem que ser de String
Se você quiser acessar as informações do objeto é como o Danilo disse o ideal seria salvar o objeto Utilizador!
Verdade nem tinha reparado no ArrayList
L
luiji1790
Eu ao criar o utilizador guardo as informações num array até porque tenho uma função para listar os utilizadores na consola listar os contactos, eventos…
L
luiji1790
Continuo a ter o mesmo problema:
public void CriarContacto(){
Scanner in = new Scanner(System.in);
Agora é que fiquei mesmo confuso, eu so utilizo a classe Utilizador para criar os utilizadores e adiciona-los a um array na classe ListaDeUtilizadores.
L
luiji1790
Ajudem sff! Fiquei mesmo confuso, vou tentar explicar melhor a situação eu não posso utilizar o método array list porque ainda não o estudei na faculdade, o que eu quero é criar um array de contactos para cada utilizador. Tendo em atenção que os utilizadores tambem estão num array.
D
danilovicente
Só por que seu professor não ensinou não quer dizer que não possa usar. A não ser que ele tenha dito não utilizem ArrayList
L
luiji1790
É esse o problema! Eu mandei mail ontem com essa implementação e ele disse que so podemos utilizar materia dada na aula. Ajudem!
D
danilovicente
E o que você aprendeu até agora?
L
luiji1790
Classes Simples e Tipos Básicos de Dados, Condições e Decisões. Bloco de Instruções. Análise de especificações em língua natural e modelação de classes, Repetição de Comandos (iteração), Ficheiros(gravar, ler), Vectores, Vectores de objetos.