diff --git a/include/utils/LruCache.h b/include/utils/LruCache.h
index 2a70d76..937fe1e 100644
--- a/include/utils/LruCache.h
+++ b/include/utils/LruCache.h
@@ -36,6 +36,9 @@
 
     void setOnEntryRemovedListener(OnEntryRemoved<TKey, TValue>* listener);
     size_t size() const;
+    const TKey& keyAt(size_t index) const;
+    const TValue& valueAt(size_t index) const;
+    void removeAt(size_t index);
     const TValue& get(const TKey& key);
     bool put(const TKey& key, const TValue& value);
     bool remove(const TKey& key);
@@ -86,6 +89,27 @@
 }
 
 template <typename TKey, typename TValue>
+const TKey& LruCache<TKey, TValue>::keyAt(size_t index) const {
+    const Entry& entry = mTable->entryAt(index);
+    return entry.key;
+}
+
+template <typename TKey, typename TValue>
+const TValue& LruCache<TKey, TValue>::valueAt(size_t index) const {
+    const Entry& entry = mTable->entryAt(index);
+    return entry.value;
+}
+
+template <typename TKey, typename TValue>
+void LruCache<TKey, TValue>::removeAt(size_t index) {
+    if (index < 0) {
+        return;
+    }
+
+    mTable->removeAt(index);
+}
+
+template <typename TKey, typename TValue>
 const TValue& LruCache<TKey, TValue>::get(const TKey& key) {
     hash_t hash = hash_type(key);
     ssize_t index = mTable->find(-1, hash, key);
