Class EqHashEnum<E>

Type Parameters:
E - type of contained elements
All Implemented Interfaces:
Iterable<E>, Consumer<E>, CapacityCarrying, CapacityExtendable, ConsolidatableCollection, ExtendedCollection<E>, ExtendedSequence<E>, HashCollection<E>, OptimizableCollection, ReleasingCollection<E>, Sized, Truncateable, Sortable<E>, SortableProcedure<E>, XAddGetCollection<E>, XAddGetSet<E>, XAddingCollection<E>, XAddingEnum<E>, XAddingSequence<E>, XAddingSet<E>, XBasicEnum<E>, XBasicSequence<E>, XCollection<E>, XDecreasingEnum<E>, XDecreasingSequence<E>, XEnum<E>, XExpandingEnum<E>, XExpandingSequence<E>, XExtendingEnum<E>, XExtendingSequence<E>, XGettingCollection<E>, XGettingEnum<E>, XGettingSequence<E>, XGettingSet<E>, XIncreasingEnum<E>, XIncreasingSequence<E>, XIndexIterable<E>, XInputtingEnum<E>, XInputtingSequence<E>, XInsertingEnum<E>, XInsertingSequence<E>, XIterable<E>, XJoinable<E>, XOrderingEnum<E>, XOrderingSequence<E>, XPrependingEnum<E>, XPrependingSequence<E>, XPreputtingEnum<E>, XPreputtingSequence<E>, XProcessingCollection<E>, XProcessingEnum<E>, XProcessingSequence<E>, XProcessingSet<E>, XPutGetCollection<E>, XPutGetEnum<E>, XPutGetSequence<E>, XPutGetSet<E>, XPuttingCollection<E>, XPuttingEnum<E>, XPuttingSequence<E>, XPuttingSet<E>, XRemovingCollection<E>, XRemovingEnum<E>, XRemovingSequence<E>, XRemovingSet<E>, XReplacingCollection<E>, XSequence<E>, XSet<E>, XSettingEnum<E>, XSettingSequence<E>, XSortableEnum<E>, XSortableSequence<E>, Processable<E>, Clearable, Composition, Copyable

public final class EqHashEnum<E>
extends AbstractChainCollection<E,​E,​E,​ChainEntryLinkedHashedStrong<E>>
implements XEnum<E>, HashCollection<E>, Composition
Collection that is ordered and does not allow duplicates. Aims to be more efficient, logically structured and with more built in features than Set.

Additionally to the HashEnum, this implementation needs an HashEqualator to first define equality between elements and second define the hash method to use.

This implementation is not synchronized and thus should only be used by a single thread or in a thread-safe manner (i.e. read-only as soon as multiple threads access it).
See SynchSet wrapper class to use a list in a synchronized manner.

Also note that by being an extended collection, this implementation offers various functional and batch procedures to maximize internal iteration potential, eliminating the need to use the ill-conceived external iteration Iterator paradigm.