Problema ao adicionar objetos a uma List

Bom Dia pessoal, estou com um problema aqui ao adicionar um objeto em uma List. Segue o exemplo:

List<Conta> contas = new ArrayList<Conta>();
ResultSet rs;
Calendar vencimento = Calendar.getInstance()

while(rs.next())
{				
   conta.setId( rs.getInt("idcontas") );
   conta.setDescricao( rs.getString( "descricao" ) );
   conta.setValor( rs.getDouble( "valor" ) );
				
   // Passando a data de vencimento
   vencimento.setTime( rs.getDate( "vencimento" ) );
   conta.setVencimento( vencimento );
				
   contas.add(conta);				
				
}// while

O problema com esse código é que ao adicionar um item na lista pelo método “contas.add(conta)”, estava sempre repetindo os atributos e passando um objeto idêntico em cada iteração.
Eu tentei resolver esse problema atribuindo uma nova instância ao objeto “conta” no começo de cada iteração, dessa forma:

List<Conta> contas = new ArrayList<Conta>();
ResultSet rs;
Calendar vencimento = Calendar.getInstance()

while(rs.next())  
{    
   conta = new conta();   
             
   conta.setId( rs.getInt("idcontas") );  
   conta.setDescricao( rs.getString( "descricao" ) );  
   conta.setValor( rs.getDouble( "valor" ) );  
                  
   // Passando a data de vencimento  
   vencimento.setTime( rs.getDate( "vencimento" ) );  
   conta.setVencimento( vencimento );  
                  
   contas.add(conta);                 
                  
}// while

O problema foi resolvido, mas a data de vencimento continuou aparecendo igual para todos os itens da lista, alguém sabe me dizer porque isso acontece e como eu deveria proceder?

Obrigado pela atenção

o mendigo tenta colocar o Calendar vencimento = Calendar.getInstance() dentro do while tb ué