Apache Commons - Alternative to Java collection

  •        3778

Commons-Collections seek to build upon the JDK classes by providing new interfaces, implementations and utilities.

  • Bag interface for collections that have a number of copies of each object
  • Buffer interface for collections that have a well defined removal order, like FIFOs
  • BidiMap interface for maps that can be looked up from value to key as well and key to value
  • MapIterator interface to provide simple and quick iteration over maps
  • Type checking decorators to ensure that only instances of a certain type can be added
  • Transforming decorators that alter each object as it is added to the collection
  • Composite collections that make multiple collections look like one
  • Ordered maps and sets that retain the order elements are added in, including an LRU based map
  • Identity map that compares objects based on their identity (==) instead of the equals method
  • Reference map that allows keys and/or values to be garbage collected under close control
  • Many comparator implementations
  • Many iterator implementations
  • Adapter classes from array and enumerations to collections
  • Utilities to test or create typical set-theory properties of collections such as union, intersection, and closure

http://commons.apache.org/collections/

Tags
Implementation
License
Platform

   




Related Projects

Colt - Scientific and Technical Computing in Java


Colt distribution consists of several free Java libraries bundled under one single uniform umbrella. Namely the Colt library, the Jet library, the CoreJava library, and the Concurrent library. It provides support for resizable arrays, dense, sparse matrices, histogramming functionality, Random Number Generators etc.

Eclipse Collections - Best Java Collection Framework


Eclipse Collections is a collections framework for Java. It has JDK-compatible List, Set and Map implementations with a rich API, additional types not found in the JDK like Bags, Multimaps, and set of utility classes that work with any JDK compatible Collections, Arrays, Maps, or Strings. The iteration protocol was inspired by the Smalltalk collection framework. It maximizes the power of Java 8 Lambda expressions and method references with rich APIs directly available on your collections.

gs-collections - A supplement or replacement for the Java Collections Framework


GS Collections is a collections framework for Java. It has JDK-compatible List, Set and Map implementations with a rich API and set of utility classes that work with any JDK compatible Collections, Arrays, Maps or Strings. The iteration protocol was inspired by the Smalltalk collection framework. It provides replacements for ArrayList, HashSet, and HashMap optimized for performance and memory usage.

Agrona - Library to build high-performance applications in Java and C++


Agrona provides a library of data structures and utility methods that are a common need when building high-performance applications in Java and C++. It supports Buffers, Map, Sets, Cache, Queues and lot more.

Mango - specialized iterators and functions


Mango is a Java library consisting of a number of iterators, algorithms and functions, loosely inspired by the C++ Standard Template Library. It has support of 12 iterators, 16 generic algorithms and variety of function types.


Fastutil - Fast & compact type-specific collections for Java


Fastutil extends the Java Collections Framework by providing type-specific maps, sets, lists and queues with a small memory footprint and fast access and insertion. It also provides also big (64-bit) arrays, sets and lists, and fast, practical I/O classes for binary and text files.

Trove - High performance collections for Java


Trove provides fast, lightweight implementations of the java.util Collections API. These implementations are designed to be pluggable replacements for their JDK equivalents. This gap in the JDK is often addressed by using the "wrapper" classes (java.lang.Integer, java.lang.Float, etc.) with Object-based collections. For most applications, however, collections which store primitives directly will require less space and yield significant performance gains.

Hazelcast - In-Memory Data Grid for Java


Hazelcast is a clustering and highly scalable data distribution platform for Java. It supports Distributed implementations of java.util.{Queue, Set, List, Map}, java.util.concurrency.locks.Lock, java.util.concurrent.ExecutorService, Distributed Indexing and Query support, Dynamic scaling, partitioning with backups, fail-over, Web-based cluster monitoring tool and lot more.

Boon - Low Ceremony. High Productivity. A real boon to Java to developers!


The main goal of Boon is to reduce the productivity delta between Java and Python/Groovy/Ruby. The idea is to just create a lower ceremony APIs. Less Java like APIs, and more getting things done quickly APIs. If reading a file takes one line of code in Ruby/Python/Groovy, then it will also in Java. If slice notation is part of those language, then Boon will have it to.

Koloboke - Java Collections till the last breadcrumb of memory and performance


Koloboke aims to replace the standard Java collections and streams with more efficient implementations. The current version of Koloboke focuses on replacing java.util.HashSet and java.util.HashMap. It provides a complete set of primitive type implementations for each collection. Its able to avoid the expensive boxing/unboxing of primitives and saves memory for boxed primitive objects. It is the fastest and the most memory efficient library implementing hash maps and sets.

SoftNet-Consult Java Utility Library


This Java class library is a collection of tools that are regularly required in all kinds of projects, but have unfortunately not found their way into the standard Java API. These utilities are used in several projects available on SourceForge.

Apache Commons Primitives - Commons Primitives


Commons Primitives is a set of collection and utility classes for primitive types. The Java language has a clear distinction between Object and primitive types. A lot of functionality is provided for Object types, including the Java Collection Framework. Relatively little functionality is provided by the JDK for primitives. This package addresses this by providing a set of utility and collection classes for primitives.

Java Layered Frameworks (JLF)


Java Layered Frameworks is a set of Java code to provide a foundation for better and faster Java development. They include a logging framework, a utility library, and a data mapper to map Java data to relational, XML, and HTTP input form sources.

HPPC - High Performance Primitive Collections for Java


HPPC provides template-generated implementations of typical collections, such as lists, sets and maps, for all Java primitive types. The primary driving force behind HPPC is optimization for highest performance and memory efficiency.

UTiL - Collection of utility scripts for Titanium (Alloy).


A collection of utility libraries for Appcelerator's Titanium and it's Alloy MVC framework. The app contains samples and tests for some of the libraries. This is a public, but personal library. It may change at any time without notice! Feel free to fork and contribute, but I'll decide what PR's to accept based on their potential use for my own projects.

accessibility-developer-tools - This is a library of accessibility-related testing and utility code.


This is a library of accessibility-related testing and utility code. Its main component is the accessibility audit: a collection of audit rules checking for common accessibility problems, and an API for running these rules in an HTML page.

jvmgcprof - A simple utility for profile allocation and garbage collection activity in the JVM


gcprof [-p period] [-n class:fieldpath] [-no ostrichcounter] [-w nwarmup] java ...Profile allocation and garbage collection activity in the JVM. The gcprof command runs a java command under profiling. Allocation and collection statistics are printed periodically. If -n or -no are provided, statistics are also reported in terms of the given application metric. Total allocation, allocation rate, and a survival histogram is given. The intended use for this tool is twofold: (1) monitor and test garbage allocation and GC behavior, and (2) inform GC tuning.

Java Utilities for TIGR projects


The project contains a collection of general-purpose Java utility classes including unique ID generators, thread pool management classes, as well as various utility classes for email and testing.

Java Web Parts


A collection of small, largely independent utility-type classes and functions for Java web application developers including taglibs, filters, JSP templates, servlets, utility classes and other general-purpose code.

jCharts - Java based charting utility


jCharts is a 100% Java based charting utility that outputs a variety of charts. Servlets, JSP's, and Swing application could use this library to generate charts. It could generate charts of type Area, Area Stacked, Bar, Bar Clustered, Bar Clustered Horizontal, Bar Horizontal, Bar Stacked, Bar Stacked Horizontal, Combo, Hi/Low Open/Close, Line, Pie 2D, Pie 3D, Point, Radar, XY Plot and lot more.