Skip to content

Practice implementations of some common data structures and algorithms in java

Notifications You must be signed in to change notification settings

davidmoten/java-data-structures

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 

Repository files navigation

java-data-structures

Practice implementations of some common data structures and algorithms in java.

B-Tree

Aims:

  • reinvent the wheel (for the fun of it)
  • ✔ null not used at all (used Guava Optional)
  • 100% unit test coverage
  • ✔ add
  • ✔ iterate
  • ✔ find
  • delete
  • rebalance
  • ✔ thread-safe with minimal locking
  • ✔ persist to disk and load from disk efficiently
  • ✔ use log structure storage (LSS)
  • ✔ use multiple files for LSS
  • recover unused LSS storage
  • ✔ append only batched writes
  • enable snapshots/transactions
  • ✔ tuneable memory use (can use disk when required)

General programming aims

Code should be

  • Elegant
  • Concise
  • Readable

Coder should

  • Leverage symmetry
  • Favour immutability
  • Minimize overlap of unit tests
  • Maximize coverage of unit tests

About

Practice implementations of some common data structures and algorithms in java

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages