Skip to content

Add cache with LIFO replacement policy#6390

Merged
DenizAltunkapan merged 9 commits intoTheAlgorithms:masterfrom
KevinMwita7:LIFOCache
Jul 21, 2025
Merged

Add cache with LIFO replacement policy#6390
DenizAltunkapan merged 9 commits intoTheAlgorithms:masterfrom
KevinMwita7:LIFOCache

Conversation

@KevinMwita7
Copy link
Copy Markdown
Contributor

Description

This PR adds a reusable LIFOCache implementation with the following features:

  • Fixed size LIFO eviction policy using Deque as stack and HashMap as cache

  • Time to live (TTL)

  • Thread-safe operations using ReentrantLock

  • Pluggable EvictionStrategy to control expired entry cleanup

  • Eviction listener callback support for observing removals

  • Hit and miss statistics tracking

  • Builder for flexible configuration

  • I have read CONTRIBUTING.md.

  • This pull request is all my own work -- I have not plagiarized it.

  • All filenames are in PascalCase.

  • All functions and variable names follow Java naming conventions.

  • All new algorithms have a URL in their comments that points to Wikipedia or other similar explanations.

  • All new code is formatted with clang-format -i --style=file path/to/your/file.java

@codecov-commenter
Copy link
Copy Markdown

codecov-commenter commented Jul 15, 2025

Codecov Report

❌ Patch coverage is 98.05195% with 3 lines in your changes missing coverage. Please review.
✅ Project coverage is 74.97%. Comparing base (2dfad7e) to head (bd335d0).
⚠️ Report is 335 commits behind head on master.

Files with missing lines Patch % Lines
...thealgorithms/datastructures/caches/LIFOCache.java 98.05% 0 Missing and 3 partials ⚠️
Additional details and impacted files
@@             Coverage Diff              @@
##             master    #6390      +/-   ##
============================================
+ Coverage     74.77%   74.97%   +0.19%     
- Complexity     5484     5519      +35     
============================================
  Files           683      684       +1     
  Lines         19027    19181     +154     
  Branches       3675     3698      +23     
============================================
+ Hits          14228    14380     +152     
  Misses         4245     4245              
- Partials        554      556       +2     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@KevinMwita7 KevinMwita7 marked this pull request as ready for review July 15, 2025 13:08
Comment thread src/main/java/com/thealgorithms/datastructures/caches/LIFOCache.java Outdated
Comment thread src/main/java/com/thealgorithms/datastructures/caches/LIFOCache.java Outdated
@DenizAltunkapan DenizAltunkapan self-requested a review July 21, 2025 16:07
@DenizAltunkapan DenizAltunkapan merged commit c9cc8f4 into TheAlgorithms:master Jul 21, 2025
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants