Immutable Collections for Java

By Author: bburton
Library providing immutable/persistent collection classes for Java. While collections are immutable they provide methods for adding and removing values by creating new modified copies of themselves. Each copy shares as much as possible of its structure with other copies to minimize memory consumption.

The library includes a singly linked (cons/cddr style) list/stack, an integer trie based indexed list, a 2-3 tree based random access indexed list, a 2-3 tree based map, a hash trie based map, and hash and tree based sets, and sparse arrays. All collections provide immutable Cursor as well as standard Iterator classes for looping through all elements.

A utility class provides functional style algorithmic processing of Cursors including foldLeft, foldRight, collect, select, and reject.

The 2-3 tree and integer trie classes are optimized for performance and can be used alongside java.util Collections when immutability is needed for safe data sharing.

Feature

  • Persistent/Immutable Maps
  • Persistent/Immutable Lists
  • Persistent/Immutable Sets
  • Persistent/Immutable Sparse Arrays
  • java.util Collection interoperability

List Libs

The List Libs contain some simple list and map systems written in C++. They all use template thus they are type independent....

Similar: 17%

libcutils

Libcutils provides a self-contained set of fundamental routines which are essential to basically any Unix utility or daemon application written in C. The library provides fundamental data structures such as lists, hash-maps, strings and parsing functions for JSON or the typical dot-file ba.........

Similar: 16%

Happy Java Library

Helps to develop and test event-based multi-threaded Java application. Because of method called as API-Evolution the Happy Java Library is fully downward compatible. The library contains following functionality: MultiLock, Parallel loops, Collections, Controllers, Generators, Delegates, Streams....

Similar: 15%

AIIXtensions for Joomla!

AII's free extensions for Joomla! use http://jaiixtensions.sourceforge.net/update/ with Joomla Extension Manager to install...

Similar: 11%

QScript

V2.1.1 compatible with Processing 2 & 3. A powerful yet simple to use scripting language that can be used to evaluate expressions and simple algorithms. In fact it is the only evaluator I know that supports complex numbers and vectors without the need for additional configuration. The emphasis is o.........

Similar: 11%

Phorward Foundation Toolkit

Development moved to Bitbucket: https://bitbucket.org/codepilot/phorward ------------------------------------------------------------- The Phorward Foundation Toolkit (libphorward) provides a powerful, extensional set of useful functions for C programmers. It focuses on compiler development-related .........

Similar: 11%

JDynamiTe, Dynamic Template in Java

JDynamiTe is a tool which allows you to dynamically create documents in any format from "template" documents. And very few lines of code (or no line at all!) are needed to do that. Some typical usage domains of JDynamiTe are: - dynamic Web pages creation, - text document generation, - source c.........

Similar: 10%

AlgART Java Libraries

AlgART Java libraries for processing arrays and matrices are open-source product, distributed under MIT license. So, anyone can use them for free without any restrictions. Main features: 63-bit addressing of array elements (64-bit long int indexes), memory model concept (allowing storing data in di.........

Similar: 10%

DOMbasic

You can create complete websites that adhere to the standards validation of its structure. More flexible and lighter than the native PHP. It allows you to create any document labeling: HTML, XHTML, XML, ... It is designed for flexibility and dynamism, performance and low resource consumption....

Similar: 10%

JavaMutex

Freely redistributable open source 100% pure Java for mutual exclusion. Read-write and read-only reentrant lock, condition variable, atomic wraps for Boolean, Integer, Long, and Reference. Cell pool with optional locking, object exchanger, Intersect....

Similar: 9%