Releases: tumatanquang/javolution-extended
Releases · tumatanquang/javolution-extended
Release list
v5.7.8
- Updated
README.mdand Javadoc: Fixed several Javadoc layout issues and code block formatting across multiple packages (context,lang,io,xml, etc.). - Fixed the issue where
FastList.newInstance()was missing a generic type parameter when compiling on Java 5+. - Added
FastPrimitiveListand primitive iterators:- Introduced the abstract base class
FastPrimitiveListand theFastPrimitiveIteratorinterface underjavolution.util.primitive. - Added dedicated primitive iterator implementations (
FastBooleanIterator,FastByteIterator,FastCharIterator,FastDoubleIterator,FastFloatIterator,FastIntIterator,FastLongIterator,FastShortIterator).
- Introduced the abstract base class
- Enhanced primitive array lists (
Fast<Type>ArrayList):- Implemented
iterator(),reset(), andtrimToSize()methods across all primitive array list classes. - Added support for
unmodifiable()andshared()views along with their respectiveUnmodifiableandSharedinner classes.
- Implemented
- Optimized
UnmodifiableandSharedcollection wrappers:- Added
finalmodifiers to proxy methods inUnmodifiableandSharedinner classes for improved performance and lock consistency. - Standardized parameter names.
- Added
Full Changelog: v5.7.7...v5.7.8
v5.7.7
- Updated
README.md. - Removed
AbstractList: Now,FastListandFastTablewill directlyextends FastCollection. - Removed
javolution.util.ReentrantLock: Usejavolution.util.concurrent.locks.ReentrantLockinstead. - Removed the
javolution.util.internal.collectionpackage and its inner classes. - Reimplemented
UnmodifiableandSharedforFastCollection,FastList, andFastTable. - The source code will now use the Java standard line width, reduced from 120 to 80 characters.
Full Changelog: v5.7.6...v5.7.7
v5.7.6
- Updated README.
- Renamed
FastAbstractListtoAbstractList. - Fixed an incorrect
javacattribute name in thebuild.xmlfile. - Fixed several Javadoc layout issues.
- Reimplemented the
unmodifiable()andshared()methods forFastListandFastTable. - For
SharedFastListandSharedFastTable:- Fixed the issue where
subList()uses the wrong lock type, changing it fromwriteLock()toreadLock(). - Added thread-safe implementations for
iterator(),listIterator(), andlistIterator(int).
- Fixed the issue where
- For
FastArrayListin thejavolution.util.primitivepackage:- Optimized parameter names for some methods.
- If compiled in Java 5+, the
toString()method will use the internalStringBuilderto improve performance. - Optimized the
indexOf()andlastIndexOf()methods: They will return-1if the list is empty.
- Added
PropertyChangeMulticaster.javaandVetoableChangeMulticaster.javafrom Doug Lea'sutil.concurrentpackage in Release 1.3.4: However, due to the limitation of not having JavaBeans on J2ME, these two classes will have empty bodies by default (not implemented). - Changed the use of
@exceptionto@throwsin Javadoc. - The file
jdk-1_5_0_22-linux-amd64-direct.binhas been renamed tojdk-5u22-linux-x64.binin thelib/directory.
Full Changelog: v5.7.5...v5.7.6
v5.7.5
- Revert to using
colapi.jarwhen building Javadoc. - Doug Lea's
util.concurrentpackage in Release 1.3.4 has been implemented injavolution.util.concurrent, except forPropertyChangeMulticaster.javaandVetoableChangeMulticaster.javafor maintenance and backport reasons. javolution.util.concurrentwill be split into sub-packages similar to the JDK:java.util.concurrentcan be replaced withjavolution.util.concurrent.java.util.concurrent.atomiccan be replaced withjavolution.util.concurrent.atomic.java.util.concurrent.lockscan be replaced withjavolution.util.concurrent.locks.
- Added Javadoc for packages:
javolution.util.concurrent,javolution.util.concurrent.atomic,javolution.util.concurrent.locks,javolution.util.internal.collection, andjavolution.util.primitive. - Added an override for
FastSet.shared(). - Added an iterator method for
FastSet. - Optimized
javolution.util.concurrent.ConcurrentHashMapfor high concurrency and low GC pressure:- Converted the internal chain links to a
volatile Entry _nextpointer to ensure safe lock-free reads. - Redesigned the removal logic to perform in-place unlinking (
prev._next = e._next) under segment locks, completely eliminating the original Copy-on-Write chain replication overhead and achieving zero-allocation removals. - Added static
newKeySet()andnewKeySet(int)helper methods mimicking JDK 8+ concurrent set support. - Implemented the nested static class
KeySetViewto support concurrent, reusable Set views of map keys, fully backported for J2ME and legacy JDK (1.4+) compatibility.
- Converted the internal chain links to a
Full Changelog: v5.7.4...v5.7.5
v5.7.4
- Updated property names in build.xml.
- Javadoc build will now use
colapi-2.0.jar. - With the
javolution.util.concurrent.lockspackage:- Changed the naming convention of classes in the package to be consistent with classes in other packages.
- Added the
ReaderPreferenceReadWriteLockclass. - Renamed the
ReentrantReadWriteLockclass toReentrantWriterPreferenceReadWriteLockto be consistent with Doug Lea's implementation. - Reformatted the Javadocs.
- Reformatted the
FastTablecode. - Reformatted the
FastListcode.
Full Changelog: v5.7.3...v5.7.4
v5.7.3
- Unified build output set to
target/classes. - With
FastTable:- The
method has been removed.requireNotNull() - The
method has been removed.isNullDisallowed() - If you want the table to not allow
nullvalues, use constructors that specifyboolean rejectNullssuch as:FastTable(boolean rejectNulls)orFastTable(int capacity, boolean rejectNulls)orFastTable(Collection values, boolean rejectNulls). - Updated Javadoc.
- The
- Updated README.
- The new Javadoc page has been updated.
Full Changelog: v5.7.2...v5.7.3
v5.7.2
- Optimized the
FastTablesource code. - For classes in the
javolution.util.primitivepackage:- Classes have been renamed to the format
Fast<Datatype>ArrayList. - The source code has been optimized.
- It will now throw an
ArrayIndexOutOfBoundsExceptioninstead ofIndexOutOfBoundsExceptionwhen attempting to access an invalid index position. - Renamed the
delete()method toremoveElement(). - Removed the
method.removeRange()
- Classes have been renamed to the format
Full Changelog: v5.7.1...v5.7.2
v5.7.1
- Added the
javolution.util.primitivepackage: A collection of implementations forFastListandFastMapfor primitive data types. - Reimplemented for J2ME; when compiled with
ant j2me, it will default to usingmidp_2.0.jar(MIDP 2.0) andcldc_1.1.jar(CLDC 1.1) for the classpath.
Full Changelog: v5.7.0...v5.7.1
v5.7.0
- Added the packages
javolution.util.concurrentandjavolution.util.concurrent.locksbased on Doug Lea's implementation. - The following classes have been renamed:
MutableList→FastAbstractList.SharedCollectionImpl→FastSharedCollection.UnmodifiableCollectionImpl→FastUnmodifiableCollection.
From this version onwards, there will no longer be separate branches for each version. If you need to download the source code, please download it from the Releases page.
Full Changelog: v5.6.9...v5.7.0
v5.6.9
- Undo class name
FastSequencetoFastList. - The abstract class
FastListhas been renamed toMutableList.
Release file:
javolution-5.6.9_5.jaris release compiled using JDK 5.javolution-5.6.9_6.jaris release compiled using JDK 6.
Full Changelog: v5.6.8...v5.6.9