Duvida desmpenho em colecao?

Primeiro exemplo : Onde eu retorno a colecao normal.

public Collection consultar(FiltroCargo pFiltroCargo) throws SQLException {
			ArrayList colecao = new ArrayList();

			rs = prepStatment.executeQuery();

			while (rs.next()) 
			{
				
				vo = new VOCliente();
				vo.setNomw(rs.getInt("NUM") );
				vo.setDesc( rs.getString("DESc") );
                                colecao.add(vo);
			
			}

		}  catch (SQLException e) {
			 
		    	throw new SQLException(e.getMessage());
		 
		}
 		          return colecao;
}//fim do metodo consultar
   Segundo Exemplo : Onde eu retorno a coleção sincornizada
public Collection consultar(FiltroCargo pFiltroCargo) throws SQLException {
			ArrayList colecao = new ArrayList();

			rs = prepStatment.executeQuery();

			while (rs.next()) 
			{
				
				vo = new VOCliente();
				vo.setNomw(rs.getInt("NUM") );
				vo.setDesc( rs.getString("DESc") );
                                colecao.add(vo);
			
			}

		}  catch (SQLException e) {
			 
		    	throw new SQLException(e.getMessage());
		 
		}
 		          return Collections.synchronizedCollection(colecao);
}//fim do metodo consultar

Sera que eu ganho mas desempenho quanto a velocidade se eu retorna a colecao sincronizada !?

Agradeço a quem ajudar 1!!

Ola,

Vc perdera desenpenho se retornar uma colecao sincronizada.

A sincronização de coleções é interessante somente para resolver problemas de concorrencia, mas para isto se paga o preço da perda de desempenho frente a uma coleção não sincronizada.

Vc pode comparar isto testando a diferença entre o ArrayList e o Vector, este ultimo é sincronizado.