Apache Commons logo Commons Collections

Commons Collections Changes

Release History

Version Date Description
4.0.1 TBD
4.0 2013-11-27 This is a major release: It combines bug fixes, new features and changes to existing features. Most notable changes are: use of generics and other language features introduced in Java 5 (varargs, Iterable), removed deprecated classes / methods and features which are now supported by the JDK, replaced Buffer interface with java.util.Queue, added concept of split maps with respective interfaces Put / Get (see also package splitmap), added new Trie interface together with an implementation of a Patricia Trie. Because of the base package name change, this release can be used together with earlier versions of Commons Collections. The minimal version of the Java platform required to compile and use Commons Collections is Java 5. Users are encouraged to upgrade to this version as, in addition to new features, this release includes numerous bug fixes.

Release 4.0.1 - TBD

Type Changes By
fix Removed wrong type bounds for "ComparatorUtils#chainedComparator(...)". Fixes COLLECTIONS-507. Thanks to Gerson. tn
fix Added javadoc clarification to class "CollectionUtils" that input objects which override "Object#equals(Object)" must also maintain the general contract of "Object#hashCode()" as various utility methods take advantage of sets/maps/bags. Fixes COLLECTIONS-506. Thanks to Anthony Communier. tn
add Added new transformer "IfTransformer" and factory methods "TransformerUtils#ifTransformer(...)" which replace "TransformerUtils#switchTransformer(Predicate, Transformer, Transformer)". Fixes COLLECTIONS-503. Thanks to Josh Cain. tn
add Added new decorator "BoundedIterator" and factory methods "IteratorUtils#boundedIterator(...)". Fixes COLLECTIONS-471. Thanks to Radford Tam. tn

Release 4.0 - 2013-11-27

Type Changes By
update Resolved generic parameter inconsistency for various static fields, e.g. BagUtils.EMPTY_BAG, TruePredicate.INSTANCE and many others. All accessible static fields use raw types so that they can be used directly without explicit casting. To avoid compiler warnings about unchecked conversion and/or rawtypes use the corresponding factory methods, e.g. BagUtils.emptyBag(). Fixes COLLECTIONS-502. tn
update Renamed methods "V MultiKeyMap#remove(Object, Object, ...)" to "V MultiKeyMap#removeMultiKey(Object, Object, ...)" to avoid future conflicts with a default method of the Map interface in Java 8. Fixes COLLECTIONS-501. tn
update Renamed "V MultiMap#remove(K, V)" to "boolean MultiMap#removeMapping(K, V)" to avoid future conflicts with a default method of the Map interface in Java 8. Fixes COLLECTIONS-500. tn
update Refactored the test framework for Bag implementations to extend from "AbstractCollectionTest" by decorating the concrete Bag instance with a CollectionBag or CollectionSortedBag. Fixes COLLECTIONS-499. tn
fix "CollectionBag" will now also respect the contract of the decorated bag in case a null argument is provided to either removeAll or retainAll. Fixes COLLECTIONS-498. tn
add Added bag decorator "CollectionSortedBag" which decorates a SortedBag to make it comply with the Collection contract. Fixes COLLECTIONS-497. tn
update "UnmodifiableBoundedCollection" does now also implement the marker interface "Unmodifiable" similar as all other unmodifiable decorators. Fixes COLLECTIONS-496. tn
fix "UnmodifiableTrie#unmodifiableTrie(Trie)" will not decorate again an already unmodifiable Trie. Also the return type has been changed to "Trie" to be consistent with other Unmodifiable decorators. Fixes COLLECTIONS-495. tn
update Moved "Equator" interface to base package for consistency. Fixes COLLECTIONS-494. Thanks to Emmanuel Bourg. tn
add Added "CollectionsUtils#matchesAll(Iterable, Predicate)" to test if all elements of a collection match a given predicate. Fixes COLLECTIONS-488. Thanks to Josh Cain. tn
fix Accept wildcard input where possible, e.g. in copy-constructors, Unmodifiable* decorators and iterators. Fixes COLLECTIONS-485. Thanks to Hollis Waite. tn
fix No collision detection/resolution was performed when calling "CompositeSet#addComposited(...)" with more than one Set as argument. Additionally use varargs parameters instead of arrays in CompositeSet and CompositeCollection constructor and addComposited method. Fixes COLLECTIONS-481. Thanks to Hollis Waite. tn
update Narrow return type of "BidiMap#values()" to Set as the values are required to be unique. Fixes COLLECTIONS-480. Thanks to Hollis Waite. tn
fix Fixed conversion of timeout parameters in "PassiveExpiringMap". Fixes COLLECTIONS-475. tn
fix Exception in "ListOrderedMap#putAll" if map contains null values. Fixes COLLECTIONS-474. Thanks to Ning Chen. sebb
update Made field "collection" in class "AbstractCollectionDecorator" private and added setter "setCollection(Collection)" with scope protected to set the decorated collection during de-serialization. Fixes COLLECTIONS-473. Thanks to sebb. tn
fix Improved performance of "AbstractMapBag#containsAll(Collection)" by returning immediately after a difference has been found. Fixes COLLECTIONS-472. Thanks to Adrian Nistor. tn
update Renamed class "TransformedMap" in package "splitmap" to "TransformedSplitMap" to avoid name clash with similar class in package "map". Fixes COLLECTIONS-470. Thanks to sebb. tn
add Added bag decorator "CollectionBag" which decorates a bag to make it comply with the Collection contract. Fixes COLLECTIONS-468. tn
update Replaced "Collection" with "Iterable" for method arguments where applicable. Fixes COLLECTIONS-466. tn
add Added "PushbackIterator" decorator to support pushback of elements during iteration. Fixes COLLECTIONS-463. Thanks to Andy Seaborne, Claude Warren. tn
add Added "PeekingIterator" decorator to support one-element lookahead during iteration. Fixes COLLECTIONS-462. Thanks to Andy Seaborne, Claude Warren. tn
fix Added additional clarification to javadoc of interface "Put" wrt return type of "put(Object, Object)" method. Fixes COLLECTIONS-461. Thanks to Matt Benson, sebb. tn
update Changed "IteratorChain" to use internally a "Queue" instead of a "List". Iterators are removed from the queue once used and can be garbage collected after being exhausted. Additionally removed the methods "setIterator(Iterator)" and "getIterators()". Fixes COLLECTIONS-460. tn
update Removed method "setArray(Object)" in class ArrayIterator and method "setArray(Object[])" in class ObjectArrayIterator and made fields array, startIndex and endIndex final. Fixes COLLECTIONS-459. Thanks to sebb. tn
remove Removed unused class "AbstractUntypedCollectionDecorator<E, D>". Fixes COLLECTIONS-458. sebb
add Added methods "ListUtils#longestCommonSubsequence(...)" to get the longest common subsequence of arbitrary lists or CharSequences. Fixes COLLECTIONS-456. tn
update Changed scope of fields to private where appropriate. Fixes COLLECTIONS-455. sebb
update An iterator over a "Flat3Map#entrySet()" will now return independent Map.Entry objects that will not change anymore when the iterator progresses. Fixes COLLECTIONS-454. tn
update Several closure and transformer implementations in the functors package will now copy an array as input to their constructor (e.g. ChainedClosure). Fixes COLLECTIONS-453. tn
update Change base package to org.apache.commons.collections4. Fixes COLLECTIONS-452. tn
update The constructors for all Utils classes are now private to prevent instantiation. Fixes COLLECTIONS-451. tn
add Added methods "forAllButLastDo(Collection, Closure)" and "forAllButLastDo(Iterator, Closure)" to class "CollectionUtils". Fixes COLLECTIONS-450. Thanks to J. Moldawski. tn
fix Tree traversal with a TreeListIterator will not be affected anymore by the removal of an element directly after a call to previous(). Fixes COLLECTIONS-447. Thanks to Jeffrey Barnes. tn
add Added method "CollectionUtils#isEqualCollection(Collection, Collection, Equator)". Fixes COLLECTIONS-446. Thanks to Matt Lachman. tn
fix Adapt and/or ignore several unit tests when run on a IBM J9 VM (specification version 1.6.0) due to a faulty "java.util.TreeMap" implementation. Fixes COLLECTIONS-445. tn
fix SetUniqueList.set(int, E) now works correctly if the object to be inserted is already placed at the given position. Fixes COLLECTIONS-444. Thanks to Thomas Vahrst, John Vasileff. tn
fix MultiKeyMap.clone() now correctly calls super.clone(). Fixes COLLECTIONS-441. Thanks to Thomas Vahrst. tn
add Added "emptyIfNull" methods to classes "CollectionUtils", "ListUtils", "SetUtils" and "MapUtils". Fixes COLLECTIONS-436. Thanks to Arman Sharif. tn
fix Improve performance of "TreeList#addAll" and "TreeList(Collection)" by converting the input collection into an AVL tree and efficiently merge it into the existing tree. Fixes COLLECTIONS-433. Thanks to Jeffrey Barnes. tn
update Replaced "Buffer" interface with "java.util.Queue". Kept "CircularFifoQueue" as well as "Predicated", "Transformed" and "Unmodifiable" decorators. Fixes COLLECTIONS-432. tn
add Added method "CollectionUtils#containsAll(Collection, Collection)" with guaranteed runtime complexity of O(n + m) and space complexity of O(n). This method may yield much better performance than "Collection#containsAll(Collection)" depending on the use-case and type of collection used. Fixes COLLECTIONS-429,COLLECTIONS-434. Thanks to Adrian Nistor, Mert Guldur. tn
fix Fixed performance issue in "SetUniqueList#retainAll" method for large collections. Fixes COLLECTIONS-427. Thanks to Mert Guldur. brentworden
fix Fixed performance issue in "ListOrderedSet#retainAll" method for large collections. Fixes COLLECTIONS-426. Thanks to Adrian Nistor. brentworden
fix Improved performance of "ListOrderedMap#remove(Object)" method. Fixes COLLECTIONS-425. Thanks to Adrian Nistor. tn
update "CompositeSet" does not inherit from "CompositeCollection" anymore. The inner class "SetMutator" has been updated accordingly. Fixes COLLECTIONS-424. Thanks to Michael Pradel. tn
add Added method "CollectionUtils#permutations(Collection)" and class "PermutationIterator" to generate unordered permutations of a collection. Fixes COLLECTIONS-422. Thanks to Benoit Corne. tn
fix Update javadoc for "ListUtils#lazyList()" and "ListUtils#fixedSizeList()". Fixes COLLECTIONS-421. Thanks to Benedikt Ritter. tn
fix Added clarifying javadoc wrt runtime complexity of "AbstractDualBidiMap#retainAll". Fixes COLLECTIONS-419. Thanks to Adrian Nistor. tn
fix Added clarifying javadoc wrt runtime complexity of "AbstractLinkedList#retainAll". Fixes COLLECTIONS-417. Thanks to Adrian Nistor. tn
fix Added clarifying javadoc wrt runtime complexity of "AbstractLinkedList#removeAll". Fixes COLLECTIONS-415. Thanks to Adrian Nistor. tn
fix Fixed several compilation issues with older Java 1.6 compilers. Fixes COLLECTIONS-414. tn
fix Improved performance of "removeAll()" method for sets returned by "DualHashBidiMap#entrySet()". Fixes COLLECTIONS-413. Thanks to Adrian Nistor. tn
fix Improved performance of "CollectionUtils#subtract" methods. Fixes COLLECTIONS-412. Thanks to Adrian Nistor. tn
fix Fixed possible "IndexOutOfBoundsException" in "ListOrderedMap#putAll". Fixes COLLECTIONS-411. Thanks to Adrian Nistor. tn
fix Improved performance of "SetUniqueList#addAll" method. Fixes COLLECTIONS-410. Thanks to Adrian Nistor. tn
fix Improved performance of "ListOrderedSet#addAll" method. Fixes COLLECTIONS-409. Thanks to Adrian Nistor. tn
fix Improved performance of "SetUniqueList#removeAll". Fixes COLLECTIONS-408. Thanks to Adrian Nistor. tn
fix Improved performance of "ListOrderedSet#remove(Object)" in case the object is not contained in the Set. Fixes COLLECTIONS-407. Thanks to Adrian Nistor. tn
fix Improved performance of "ListUtils#subtract" method. Fixes COLLECTIONS-406. Thanks to Adrian Nistor. tn
add Added "ListUtils#select" and "ListUtils#selectRejected" methods. Fixes COLLECTIONS-405. Thanks to Adam Dyga. brentworden
add Added an implementation of Eugene Myers difference algorithm in package o.a.c.c.sequence. Fixes COLLECTIONS-404. Thanks to Jordane Sarda. luc
fix Added missing null check in "CollectionUtils#addIgnoreNull(Collection, Object)". Fixes COLLECTIONS-400. Thanks to Shin Hwei Tan. tn
add Added new method "get(int)" to "CircularFifoQueue". Fixes COLLECTIONS-399. Thanks to Sebb. tn
add Added "LazyIteratorChain" iterator. Fixes COLLECTIONS-396. Thanks to Jeff Rodriguez. tn
add Added "ListUtils#partition" method to split a List into consecutive sublists. Fixes COLLECTIONS-393. Thanks to Chris Shayan. tn
fix Fixed javadoc for "MapUtils#toProperties(Map)". Fixes COLLECTIONS-391. Thanks to Shin Hwei Tan. tn
fix Clarified javadoc for "TransformerUtils#mapTransformer" for null input. Fixes COLLECTIONS-389. Thanks to Shin Hwei Tan. tn
fix Clarified javadoc for "FactoryUtils#prototypeFactory" for null input. Fixes COLLECTIONS-388. Thanks to Shin Hwei Tan. tn
fix Fixed inconsistent javadoc for "MapUtils#synchronizedMap(Map)". Fixes COLLECTIONS-384. Thanks to Shin Hwei Tan. ggregory
add Added "CollectionUtils#forAllDo" implementation which takes an "Iterator" as input. Fixes COLLECTIONS-383. Thanks to Adrian Cumiskey. tn
update Change maven coordinates to "org.apache.commons.commons-collections4". Fixes COLLECTIONS-382. Thanks to Olivier Lamy. tn
update Move the project structure to a standard maven layout. Fixes COLLECTIONS-381. Thanks to Olivier Lamy. sebb
fix Fixed infinite loop when calling "UnmodifiableBoundedCollection#unmodifiableBoundedCollection()". Fixes COLLECTIONS-380. Thanks to Dave Brosius. tn
fix Fixed javadoc for several methods wrt expected NullPointerExceptions. Fixes COLLECTIONS-379. Thanks to Shin Hwei Tan. tn
add Added method "ListUtils#defaultIfNull(List, List)". Fixes COLLECTIONS-375. Thanks to Ivan Hristov. tn
update TransformingComparator now supports different types for its input/output values. Fixes COLLECTIONS-372. tn
fix "DualTreeBidiMap" now uses the correct comparator for the reverse map during de-serialization. Fixes COLLECTIONS-364. sebb
fix "TransformedMap" in the package "splitmap" can now be serialized. Fixes COLLECTIONS-363. sebb
update "CollectionUtils#filter(Iterable, Predicate)" will now return whether the collection has been modified. Fixes COLLECTIONS-362. Thanks to Jean-Noel Rouvignac. brentworden
add Add method "CollectionUtils#filterInverse(Iterable, Predicate)". Fixes COLLECTIONS-361. Thanks to Jean-Noel Rouvignac. tn
fix "FilterListIterator#hasNext" does not throw a NullPointerException anymore to comply to the Java iterator specification. Fixes COLLECTIONS-360. Thanks to Sai Zhang. jochen
fix "ListUtils#intersection(List, List)" will now also work correctly if there are duplicate elements in the provided lists. Fixes COLLECTIONS-359. Thanks to Mark Shead. bayard
fix "AbstractCollectionDecorator" will now use internally "decorated()" to access the decorated collection. Fixes COLLECTIONS-352. Thanks to Adam Gent. bayard
remove Removed features which are now supported by the JDK. Fixes COLLECTIONS-351. Thanks to Henri Yandell. bayard
fix Removed debug output in "MapUtils#getNumber(Map)". Fixes COLLECTIONS-350. Thanks to Michael Akerman. bayard
fix Fixed javadoc for all "transformedXXX(XXX)" methods in the respective Utils classes to clarify that existing objects in the list are not transformed. Fixes COLLECTIONS-348. Thanks to Paul Benedict. brentworden
fix Singleton classes in package "functors" are now correctly de-serialized. Fixes COLLECTIONS-343. Thanks to Goran Hacek. mbenson
update "NOPClosure" is now a final class. Fixes COLLECTIONS-341. Thanks to Goran Hacek. mbenson
fix Removed broken methods "equals(Object)" and "hashCode()" in class "NOPClosure". Fixes COLLECTIONS-340. Thanks to Goran Hacek. mbenson
fix Simplified exceptions as the cause is available from the parent. Fixes COLLECTIONS-336. Thanks to sebb. bayard
fix Fixed cache assignment for "TreeBidiMap#entrySet". Fixes COLLECTIONS-335. Thanks to sebb. jochen
fix Synchronized access to lock in "StaticBucketMap#size()". Fixes COLLECTIONS-334. Thanks to sebb. jochen
fix Added clarification to javadoc of "ListOrderedMap" that "IdentityMap" and "CaseInsensitiveMap" are not supported. Fixes COLLECTIONS-332. Thanks to Tom Parker. jochen
fix Improve javadoc of "CollatingIterator" wrt the used "Comparator" and throw a NullPointerException in "CollatingIterator#least" if no comparator is set. Fixes COLLECTIONS-331. Thanks to Michael Krkoska. jochen
fix "LRUMap#keySet()#remove(Object)" will not throw a "ConcurrentModificationException" anymore. Fixes COLLECTIONS-330. Thanks to Joerg Schaible. mbenson
fix Improved performance of "ListUtils#intersection(List, List)". Fixes COLLECTIONS-328. Thanks to Thomas Rogan, Jilles van Gurp. bayard
add Added serialVersionUID fields for "CompositeCollection", "CompositeSet", "EmptyMapMutator", "EmptySetMutator". Fixes COLLECTIONS-327. Thanks to sebb. brentworden
update Fields transformer and decorated in class "TransformingComparator" are now final. Fixes COLLECTIONS-324. Thanks to sebb. tn
fix Changed behavior of "CaseInsensitiveMap" constructor to be compliant with "HashMap" in case the initial capacity is set to zero. Fixes COLLECTIONS-323. Thanks to Maarten Brak. jochen
add Added NodeListIterator and convenience methods in IteratorUtils to iterate over a org.w3c.dom.NodeList. Fixes COLLECTIONS-322. Thanks to Thomas Vahrst. tn
fix Improved performance of "StaticBucketMap#putAll(Map)" by iterating over the entry set. Fixes COLLECTIONS-320. Thanks to sebb. bayard
fix Avoid redundant null check in "IteratorUtils#getIterator(Object)". Fixes COLLECTIONS-319. Thanks to sebb. bayard
fix Use a private method to populate the object in "AbstractHashedMap(Map)". Fixes COLLECTIONS-317. Thanks to sebb. bayard
fix Fixed javadoc of "LRUMap" wrt to the maxSize parameter of the constructor. Fixes COLLECTIONS-316. Thanks to ori. bayard
add Added new abstract class "CatchAndRethrowClosure" that re-throws any checked exception as unchecked "FunctorException". Fixes COLLECTIONS-313. Thanks to David J. M. Karlsen. brentworden
fix Use of final keyword where applicable, minor performance improvements by properly initializing the capacity of newly created collections when known in advance. Fixes COLLECTIONS-312. Thanks to Peter Lawrey, Gary Gregory. tn
update "SetUniqueList#subList()" will now return an unmodifiable list as changes to it may invalidate the parent list. Fixes COLLECTIONS-307. Thanks to Christian Semrau, Thomas Vahrst. tn
fix "SetUniqueList#subList()#contains(Object)" will now correctly check the subList rather than the parent list. Fixes COLLECTIONS-307. Thanks to Christian Semrau. bayard
add Added method "CollectionUtils#subtract(Iterable, Iterable, Predicate)". Fixes COLLECTIONS-306. Thanks to Chris Shayan. brentworden
fix "SetUniqueList#set(int, Object)" will now correctly enforce the uniqueness constraint. Fixes COLLECTIONS-304. Thanks to Rafał Figas,Bjorn Townsend. bayard
fix Improved javadoc for "Unmodifiable*" classes wrt behavior when the users tries to modify the collection. Fixes COLLECTIONS-303. Thanks to Emmanuel Bourg. bayard
update Calling "CollectionUtils#sizeIsEmpty(null)" will now return true. Fixes COLLECTIONS-298. Thanks to Benjamin Bentmann. bayard
add Added methods "CollectionUtils#collate(...)" to merge two sorted Collections into a sorted List using the standard O(n) merge algorithm. Fixes COLLECTIONS-296. Thanks to Julius Davies. tn
fix "CaseInsensitiveMap" will now convert input strings to lower-case in a locale-independant manner. Fixes COLLECTIONS-294. Thanks to Benjamin Bentmann. bayard
add Added support for using custom "Equator" objects in "EqualPredicate". Fixes COLLECTIONS-293. Thanks to Stephen Kestle. tn
add Added method "CollatingIterator#getIteratorIndex()". Fixes COLLECTIONS-289. Thanks to Fredrik Kjellberg. bayard
fix Fixed javadoc for "ListUtils#transformedList(List)" to clarify that existing objects in the list are not transformed. Fixes COLLECTIONS-256,COLLECTIONS-288. Thanks to Paul Benedict. bayard
add Added method "CollectionUtils#extractSingleton(Collection)". Fixes COLLECTIONS-286. Thanks to Geoffrey De Smet. mbenson
add Added serialization support for "TreeBidiMap". Fixes COLLECTIONS-285. Thanks to Christian Gruenberg. tn
update The predicate that rejected an object to be added to a "PredicatedCollection" is now contained in the respective exception message. Fixes COLLECTIONS-280. Thanks to Chris Lewis. bayard
add Added "IndexedCollection" collection decorator which provides a map-like view on an existing collection. Fixes COLLECTIONS-275. Thanks to Stephen Kestle. tn
add Added serialization support for "FixedOrderComparator" and "TransformingComparator". Fixes COLLECTIONS-272. Thanks to Chaitanya Mutyala. tn
fix "MultiKey" will now be correctly serialized/de-serialized. Fixes COLLECTIONS-266. Thanks to Joerg Schaible. bayard
update "TreeBag" will now only accept "Comparable" objects as input when used with natural ordering. Fixes COLLECTIONS-265. Thanks to David Saff. bayard
add Added methods "MapUtils#populateMap(MultiMap, ...)" to support also "MultiMap" instances as input. Fixes COLLECTIONS-263. Thanks to John Hunsley. tn
fix Fixed javadoc for methods "firstKey()" and "lastKey()" in class "AbstractLinkedMap". Fixes COLLECTIONS-262. Thanks to Lisen Mu. bayard
fix "Flat3Map#remove(Object)" will now return the correct value mapped to the removed key if the size of the map is less or equal 3. Fixes COLLECTIONS-261. Thanks to ori. bayard
add Added constructor "TransformingComparator(Transformer)". Fixes COLLECTIONS-260. Thanks to Stephen Kestle. mbenson
add Added "DualLinkedHashBidiMap" bidi map implementation. Fixes COLLECTIONS-258. Thanks to Nathan Blomquist. tn
fix Removed unused variables in "TreeBidiMap". Fixes COLLECTIONS-255. Thanks to Henri Yandell. mbenson
update The static factory methods have been renamed from "getInstance()" to a camel-case version of the class name, e.g. "truePredicate()" for class "TruePredicate". Fixes COLLECTIONS-251,COLLECTIONS-321. Thanks to Stephen Kestle. mbenson
fix "SetUniqueList.addAll(int, Collection)" now correctly add the collection at the provided index. Fixes COLLECTIONS-249. Thanks to Joe Kelly. bayard
add Added "Equator" interface. Fixes COLLECTIONS-242. skestle
add Added "PassiveExpiringMap" map decorator. Fixes COLLECTIONS-241. Thanks to Elifarley Callado Coelho. brentworden
update "MultiValueMap" is now serializable. Fixes COLLECTIONS-240. Thanks to Wouter de Vaal. bayard
add Added method "MultiValueMap#iterator()" to return a flattened version of "entrySet().iterator()". Clarified javadoc for "entrySet()" that the returned Entry objects are unflattened, i.e. the Entry object for a given key contains all values mapped to this key. Fixes COLLECTIONS-237. Thanks to Nils Kaiser, Alan Mehlo. tn
add Added method "ListUtils#indexOf(List, Predicate)". Fixes COLLECTIONS-235. Thanks to Nathan Egge. bayard
fix Fixed several unit tests which were using parameters to "assertEquals(...)" in wrong order. Fixes COLLECTIONS-232. Thanks to Mark Hindess. bayard
update Return concrete class in static factory methods instead of base class interface (except for Unmodifiable decorators). Fixes COLLECTIONS-231. Thanks to Torsten Curdt. tn
update "CollectionUtils#size(Collection)" now returns 0 when called with null as input. Fixes COLLECTIONS-230,COLLECTIONS-297,COLLECTIONS-318. Thanks to Stepan Koltsov,sebb. bayard
remove Removed deprecated classes and methods. Fixes COLLECTIONS-229. scolebourne
fix "MultiValueMap#put(Object, Object)" and "MultiValueMap#putAll(Object, Collection)" now correctly return if the map has changed by this operation. Fixes COLLECTIONS-228. scolebourne
add Added method "ListOrderedMap#putAll(int, Map)". Fixes COLLECTIONS-226. Thanks to Vasily Ivanov. bayard
add Added new "Trie" interface with a first concrete implementation "PatriciaTrie" together with decorators "Unmodifiable" and "Synchronized". Fixes COLLECTIONS-225. Thanks to Sam Berlin, Roger Kapsi. tn
update "CollectionUtils#addAll(...)" methods now return if the collection has been changed by this operation. Fixes COLLECTIONS-223. Thanks to Vasily Ivanov. bayard
update "CompositeCollection", "CompositeMap" and "CompositeSet" are now serializable. Fixes COLLECTIONS-221. Thanks to Pal Denes. bayard
fix "CollectionUtils#removeAll" wrongly called "ListUtils#retainAll". Fixes COLLECTIONS-219. Thanks to Tom Leccese. scolebourne
update The "CollectionUtils#select(Collection, Predicate, Collection)" method will now return the output collection. Fixes COLLECTIONS-218. skestle
fix Calling "setValue(Object)" on any Entry returned by a "Flat3Map" will now correctly set the value for the current entry. Fixes COLLECTIONS-217. Thanks to Matt Bishop. scolebourne
fix "MultiKey#toString()" will now use "Arrays#toString(List)". Fixes COLLECTIONS-216. Thanks to Hendrik Maryns. scolebourne
add Added support for resettable iterators in "IteratorIterable". Fixes COLLECTIONS-213. Thanks to Dusan Chromy. brentworden
add Added methods "MapUtils#populateMap(Map, Iterable, Transformer, ...)". Fixes COLLECTIONS-194. Thanks to Dave Meikle. bayard
update "CollectionUtils#forAllDo(Collection, Closure)" now returns the provided closure. Fixes COLLECTIONS-182. Thanks to Jim Cakalic. mbenson
update Make generic versions of all classes in collections. Fixes COLLECTIONS-110,COLLECTIONS-243,COLLECTIONS-245,COLLECTIONS-247, COLLECTIONS-253,COLLECTIONS-273,COLLECTIONS-282. multiple
add Added class "ComparatorPredicate". Fixes COLLECTIONS-8. Thanks to Rune Peter Bjørnstad. brentworden