1 - É possível ter uma list de um objecto do meu tipo, aonde cada vez que adicione um objecto, ele substitua um objecto já existente, em vez de adicionar no fim da lista?
Se eu não me engano implementações de Map fazem algo parecido com o que você quer.
Quando você atribui algum valor à alguma chave já existente, o valor antigo é substituído pelo novo.
1 - É possível ter uma list de um objecto do meu tipo, aonde cada vez que adicione um objecto, ele substitua um objecto já existente, em vez de adicionar no fim da lista?
O MyObject é um objecto serializável e com bastantes variáveis de tipos criados por mim.
Olá.
Qual o critério para se substituir determinado objeto em determinada posição?
P
pedrosacosta
Isso quer dizer que quando se faz um add num ArrayList, o método vai gerar uma chave que é o apontador para o objecto e é esse apontador que é inserido na lista?
otaviojava
Ele se eu não me enganado verifica usando o método equals ou o hascode;
Então acho interessante que você sobrescreva esses dois métodos desses dois objetos.
@Overridepublicbooleanequals(Objectobj){//codigo}
@OverridepublicinthashCode(){//codigo}
drigo.angelo
pedrosacosta:
Isso quer dizer que quando se faz um add num ArrayList, o método vai gerar uma chave que é o apontador para o objecto e é esse apontador que é inserido na lista?
Acho que não é bem assim..
Quando se faz um add em um ArrayLIst ele coloca na próxima posição, por exemplo:
List<Aluno> alunos = new ArrayList<Aluno>();
alunos.add(joao);
alunos.add(jose);
System.out.println(alunos.get(1).getNome);
System.out.println(alunos.get(2).getNome);
alunos.set(2, marcos);
System.out.println(alunos.get(2).getNome);
Resultado:
João
José
Marcos
Ou seja, o valor passado para os metodos get/set (o índice) é apenas a posição do elemento na lista..
otaviojava
Só salientando é que o índice começa pelo 0 e não pelo 1
paulo1911
Olá pedrosacosta,
Primeiramente vc deve sobrescrever os métodos equals e hascode do seu MyObject, em seguida vc pode utilizar o Set para adicionar somente objectos distintos em sua coleção, evitando objetos duplicados com o meso valor ou que seja equivalentes…