@Override
	public void eliminar(Elemento e) {
			
		Integer aEliminar = e.get();

		//Explicación.
		ConsolaManager.getInstance().escribirInfo(Messages.getString("HASH_ABIERTO_NOMBRE") + tipo, Messages.getString("HASH_ABIERTO_ELEMENTO_A_INSERTAR", new Object[]{aEliminar} )); //$NON-NLS-1$ //$NON-NLS-2$
				
		//Se busca el balde.
		int baldeABuscar = h(aEliminar);
		
		//Explicación
		ConsolaManager.getInstance().escribirInfo(Messages.getString("HASH_ABIERTO_NOMBRE") + tipo,Messages.getString("HASH_ABIERTO_EXPLICACION_15", new Object[]{e.getNum(), baldeABuscar} )); //$NON-NLS-1$ //$NON-NLS-2$
		if ( ! separadoSolo )
			ConsolaManager.getInstance().escribirInfo(Messages.getString("HASH_ABIERTO_NOMBRE") + tipo, Messages.getString("HASH_ABIERTO_EXPLICACION_16")); //$NON-NLS-1$ //$NON-NLS-2$
		
		//Si el balde encontrado < frontera entonces el elemento está en un balde particionado.
		if ( baldeABuscar < frontera ){
			baldeABuscar = hprima(aEliminar);
			//Explicación
			ConsolaManager.getInstance().escribirInfo(Messages.getString("HASH_ABIERTO_NOMBRE") + tipo,Messages.getString("HASH_ABIERTO_EXPLICACION_17", new Object[]{e.getNum(), baldeABuscar} )); //$NON-NLS-1$ //$NON-NLS-2$
			
		}
		//Referencia al elemento que se va a devolver.
		int posicionEncontrada = posicionElementoEnBalde(baldeABuscar,aEliminar);
		
		//Si lo encontre seteo como borrado y me fijo si tengo que hacer reasignaciones.
		if ( posicionEncontrada != -1 ){
			//Seteo que se borro
			espacioDeAlmacenamiento.elementAt(baldeABuscar).elementAt(posicionEncontrada).setEstado(Celda.BORRADO);
			cantidadRegistros--;
			
			//Explicación
			ConsolaManager.getInstance().escribirInfo(Messages.getString("HASH_ABIERTO_NOMBRE") + tipo,Messages.getString("HASH_ABIERTO_EXPLICACION_18")); //$NON-NLS-1$ //$NON-NLS-2$
	
			//Variable Auxiliar
			int borrados = 0;
			
			//Tengo que fijarme si el problema esta en las ranuras secundarias.
				
			int parado = 0;
			for ( int actual = ranuras ; actual < espacioDeAlmacenamiento.elementAt(baldeABuscar).size() ; actual ++){
				//Si encuentro celdas borradas o virgenes aumento el contador de borrados.
				if (espacioDeAlmacenamiento.elementAt(baldeABuscar).elementAt(actual).getEstado() == Celda.BORRADO || espacioDeAlmacenamiento.elementAt(baldeABuscar).elementAt(actual).getEstado() == Celda.VIRGEN ){
					borrados++;
				}
				//Aumento donde estoy parado dentro de una ranura secundaria.
				parado++;
				//Llegué al limite de la ranura secundaria.
				if ( parado == ranurasSecundarias){
					//Vuelvo al principio.
					parado = 0;
					//Si estan todos vacios los debo eliminar.
					if ( borrados == ranurasSecundarias){
							
						for ( int i = 0 ; i < ranurasSecundarias ; i++){
							espacioDeAlmacenamiento.elementAt(baldeABuscar).removeElementAt(actual);
							actual--;
						}	
					}
					//Reseteo el contador de borrados.
					borrados = 0;
				}
			}	
		}
		ConsolaManager.getInstance().escribirInfo(Messages.getString("HASH_ABIERTO_NOMBRE") + tipo, Messages.getString("HASH_ABIERTO_ELEMENTO_ELIMINADO", new Object[]{aEliminar} )); //$NON-NLS-1$ //$NON-NLS-2$
		//Se Agrega la captura
		agregarCaptura();
	}