Vector nao armazena corretamente? ou impressao errada?

estou com um problema mas nao consigo descobrir onde, preciso fazer um vector receber varios objetos de um arquivo, em seguida tenho q gravar os objetos num outro arquivo. Oque acontece eh q quando eu chamo algum objeto do vector ele sempre retorna o ultimo objeto inserido, ou seja nao importa o index q eu uso pra chamar o objeto do vector, ele sempre me retorna o ultimo, pra qualquer index. Quando eu uso o vector.size() pra ver o tamanho do vector ele indica corretamente o tamanho como se tivesse adicionado corretamente. Como isso eh possivel???

o codigo abaixo esta num looping, quando executo o programa sempre imprime o ultimo objeto inserido, mesmo com index fixado em 0.

objToken.aValor=qualquervalor;
vetor.add(objToken);
ttoken= (Token) vetor.get(0);
System.out.println(ttoken.aValor);

Peço a ajuda de vcs para resolver esse problema!!!valew

Se todos os objetos são iguais, vc deve estar populando o vector incorretamente. Verifique melhor a parte de codigo na qual vc insere os objetos no vector.

Até.

valew, tava faltando eu colocar objtoken = new Token();
valew

objToken.aValor=qualquervalor;
vetor.add(objToken);
OBJTOKEN = NEW TOKEN();
ttoken= (Token) vetor.get(0);
System.out.println(ttoken.aValor);

Seu vetor tem realmente um número de posições igual ao de passagens pelo llop, mas você adiciona sempre o mesmo endereço de memória, ou seja todos os elementos apontam para um único objeto. Assim, o último valor que você pôs nesse objeto é mostrado não importando qual elemento do vetor você pegue. Todos apontam para o mesmo local. Tente algo assim:

// objToken.aValor=qualquervalor; 
// você precisa do constructor abaixo
vetor.add( new ObjToken(qualquervalor) );  // cria um objeto novo
ttoken= (Token) vetor.get(0); 
System.out.println(ttoken.aValor); 

ou

ObjToken objToken = new ObjToken();
objToken.aValor=qualquervalor; 
vetor.add(objToken); 
ttoken= (Token) vetor.get(0); 
System.out.println(ttoken.aValor);