Necessariamente eu tenho que ter um put depois de um get, mesmo só tenho um cópia do objeto? Pensei que tendo somente a cópia ele iria atualizar diretamente o objeto original.
mauricioadl
vale lembrar que vai duplicar o objeto. entao sera preciso remover o objeto sem alteração e adicionar o objeto alterado.
rmendes08
Cara, isso é viagem. As implementações padrão das Collection’s não duplicam objetos, é tudo por referência mesmo, sendo assim, se ele quer alterar um objeto-valor da Map basta recuperar o objeto correto e aplicar as alterações.
nel
Cara, isso é viagem. As implementações padrão das Collection’s não duplicam objetos, é tudo por referência mesmo, sendo assim, se ele quer alterar um objeto-valor da Map basta recuperar o objeto correto e aplicar as alterações.
Achei que eu não fosse ler nada coerente. É exatamente isso.
S
spiderman
Heiiii agora não entendi mais nada, então está correto desta maneira?:
Heiiii agora não entendi mais nada, então está correto desta maneira?:
public void atualizarIdade(int id, int idade) {
Trabalhador t = trabalhaodorList.get(id);
t.setIdade(idade);
}
Não, o código está errado. Mas o erro é que você usa um primitivo inteiro para recuperar o objeto quando na verdade a Map espera receber um valor do tipo String como chave, as correções são:
Map<Integer,Trabalhador>trabalhadorList=newLinkedHashMap<Integer,Trabalhador>();//sempre use a interfacepublicvoidregistrar(Trabalhadortrabalhador){trabalhadorList.put(trabalhador.getId(),trabalhador);//para guardar você tem que passar chave + valor para o put.}
Agora se o professor executar o método alteraNota e não a secretaria, minha dúvida é, como o objeto professor possui uma “cópia” do objeto aluno a nota se altera mesmo assim no objeto “original” que se encontra na lista da secretaria?
Agora se o professor executar o método alteraNota e não a secretaria, minha dúvida é, como o objeto professor possui uma “cópia” do objeto aluno a nota se altera mesmo assim no objeto “original” que se encontra na lista da secretaria?
Não se usa tipos primitivos na API Collections, inclusive, tente criar com um , para ver. Aceita Objetos e somente Objetos, portanto, se você declarou o Wrapper Integer, não considere a chave sendo um int, mas também um Integer. Não se trata de cópia de objeto mas de referência colega. O Map terá armazenado uma referência do objeto X, portanto, qualquer ação sofrida por esse objeto X, o mesmo acontece na referência que está no Map. Por isso, quando você realiza o get(key) e altera o objeto, é totalmente desnecessário realizar o put(object) novamente.