TypeScript data structures and algorithms. Meeting the demands of the modern web.
JavaScript TypeScript
Latest commit af0a447 Mar 26, 2016 @codystebbins Update README.md
Failed to load latest commit information.
bin/amd Lock down versions & initial gulpfile Feb 15, 2015
lib Format all files with Intellj Feb 15, 2015
.gitignore Rename structs to structures May 17, 2014
.npmignore change name to dstruct, add npmignore Jul 19, 2014
GruntFile.js Remove references, comment out unusde build steps, clean up build file. Jun 6, 2014
LICENSE Initial commit Apr 13, 2014
bower.json Lock down versions & initial gulpfile Feb 15, 2015
gulpfile.js Lock down versions & initial gulpfile Feb 15, 2015
karma.js comment out haning test Jul 20, 2014
package.json Lock down versions & initial gulpfile Feb 15, 2015
tsd.json Separate bimap into d.t.s file Apr 26, 2014
tslint.json Lock down versions & initial gulpfile Feb 15, 2015



NOT FOR PRODUCTION USE: This library is a learning excercise for me. If you'd like a production ready data structures library please see https://facebook.github.io/immutable-js/

Data Structures & Algorithms for TypeScript and Javascript. Based on Java & C# Collections, and Google Guava

Current version: 0.0.4 (alpha). Currently not recommended for production. Moonlit project that is accepting contributors of all skill levels.

Documentation can be found in https://github.com/codystebbins/tscollections/blob/master/lib/Interfaces.d.ts. Documentation describing the specific implementations can be found in the file representing that implementation. HTML version coming soon.

Mostly finished and tested.

  • Lists
    • ArrayList
    • DoublyLinkedList
  • Maps
    • HashMap
    • TreeMap
  • BiMaps
    • HashBiMap
  • MultiSets
    • HashMultiSet
    • TreeMultiSet
  • Queues
    • LinkedListQueue
  • Sets
    • HashSet
    • TreeSet
  • Stacks
    • ArrayStack
  • Tables
    • HashBasedTable
    • TreeBasedTable
  • Trees
    • RedBlackTree


ES6 Map support. Shims are ok. This library is tested against https://github.com/eriwen/es6-map-shim, but any ES6 tested shim should work.

Development guide


  • npm install -g bower (if not installed)
  • npm install -g tsd (if not installed)
  • npm install



  • Anytime changes are made to the lib directory (the main source code) "grunt dev" should be run. Grunt test relies on the last version of "grunt dev".
  • "grunt test" runs all the tests.