/** * Add a new key-id pair. * * @param key is the key for which an id is required * @param id is the requested id that the key is to be mapped to * @return the new id or 0 if the key is already mapped or the id is already in use or the * operation fails */ public int addPair(long key, int id) { if (validKey(key) || validId(id)) return 0; if (!ht.insert(key, id)) return 0; ids.swap(id); cnt++; return id; }
/** * Remove a pair from the mapping. This operation removes a (key,id) pair from the mapping. * * @param key is the key whose id is to be released */ public void dropPair(long key) { int id = ht.lookup(key); if (id == 0) return; ht.remove(key); ids.swap(id); cnt--; }
/** * Add a new key-id pair. * * @param key is the key for which an id is required * @return the new id or 0 if the key is already mapped or the operation fails */ public int addPair(long key) { if (validKey(key) || (ids.firstOut() == 0)) return 0; int id = ids.firstOut(); if (!ht.insert(key, id)) return 0; ids.swap(id); cnt++; return id; }
/** Clear the IdMap. */ public void clear() { for (int i = firstId(); i != 0; i = firstId()) ids.swap(i); }