HashTable duplicando valores

3 respostas
F

Olá pessoal, estou tendo problemas com Hashtables e preciso consertá-los o quanto antes!

O negócio é o seguinte, eu criei uma classe que herda uma hashtable, e constrói um Hashtable usando as letras do alfabeto como chave… Até aí tudo bem, mas o problema é quando eu faço o seguinte:

ListaHashTable TSNew = TS;

Eu quero copiar a tabela antiga para uma nova tabela… E isso está funcionando.
Agora, quando eu faço isso:

TS.adiciona(...);

ou

TSNew.adiciona(...);

Ele não só adiciona em uma como adiciona na outra, assim de sozinho…

Alguém poderia me ajudar???

Valeu!

3 Respostas

luis.soares

Na verdade você copiou para a sua nova lista, a referência para a lista que já existia. Assim, você tem 2 referências apontando para uma mesma instância. Quando você faz um operação a partir de qualquer uma de suas referências, você está fazendo na instância que elas referenciam.
Ou seja, para que você tenha listas diferentes, você deve copiar cada um dos VALORES da lista original para a nova lista, e não apenas passar uma referência.
Acredito que exista uma maneira de copiar os valores de uma lista para outra, mas não me recordo agora.

Abraço.

fenrir

Use o método clone.

ListaHashTable TSNew = (HashTable)TS.clone();

E só pra constar…os nomes das suas variáveis não estão seguindo lá muito bem o padrão adotado no Java! :wink:

http://java.sun.com/docs/codeconv/index.html

F

fenrir:

E só pra constar…os nomes das suas variáveis não estão seguindo lá muito bem o padrão adotado no Java! :wink:

http://java.sun.com/docs/codeconv/index.html

Não, de fato…
Eles seguem um padrão adotado pela gramática do compilador que estou construindo…
Pois são tabelas de símbolos (identificadores).

Criado 21 de novembro de 2006
Ultima resposta 21 de nov. de 2006
Respostas 3
Participantes 3