### Question:
ZSet extends RCollection { public void deleteFast(String key) throws KitDBException { checkTxStart(); try (CloseLock ignored = checkClose()) { byte[] key_b = getKey(key); LockEntity lockEntity = lock(key); try { byte[] k_v = getDB(key_b, SstColumnFamily.META); if (k_v == null) { checkTxCommit(); return; } MetaV meta = MetaD.build(k_v).convertMetaV(); deleteFast(key_b, meta); } finally { unlock(lockEntity); } checkTxCommit(); } catch (KitDBException e) { checkTxRollBack(); throw e; } } protected  ZSet(DB db); void add(String key, byte[] v, long score); void add(String key, List<Entry> entryList); void addMayTTL(String key, int ttl, byte[] v, long score); boolean contains(String key, byte[] value); List<Entry> range(String key, long start, long end, int limit); List<Entry> rangeDel(String key, long start, long end, int limit); @Override @SuppressWarnings("unchecked") RIterator<ZSet> iterator(String key); void remove(String key, byte[]... vs); List<Long> score(String key, byte[]... vs); Long score(String key, byte[] v); @Override void delete(String key); @Override KeyIterator getKeyIterator(); void deleteFast(String key); @Override int getTtl(String key); @Override void delTtl(String key); @Override void ttl(String key, int ttl); @Override boolean isExist(String key); @Override int size(String key); @Override Entry getEntry(RocksIterator iterator); static String HEAD; static byte[] HEAD_B; static byte[] HEAD_SCORE_B; static byte[] HEAD_V_B; }### Answer:
@Test public void deleteFast() throws KitDBException { String head = "iterator0"; ZSet set = db.getzSet(); int num = 10 * 10000; try { FList<ZSet.Entry> entries = new FList<>(num); for (int i = 0; i < num; i++) { entries.add(new ZSet.Entry(i, ("hello world" + i).getBytes())); } set.add(head, entries); set.deleteFast(head); Assert.assertTrue(!set.isExist(head)); for (int i = 0; i < num; i++) { Assert.assertTrue(!set.contains(head, ("hello world" + i).getBytes())); } } finally { } }