replaced intergers as key with hash values as key, and fixed some bugs in closestPrecedingFinger()