Interface XBag<E>
- Type Parameters:
E- type of contained elements
- All Superinterfaces:
CapacityCarrying,CapacityExtendable,Clearable,ConsolidatableCollection,Consumer<E>,Copyable,ExtendedBag<E>,ExtendedCollection<E>,Iterable<E>,OptimizableCollection,Processable<E>,ReleasingCollection<E>,Sized,Truncateable,XAddGetCollection<E>,XAddingBag<E>,XAddingCollection<E>,XCollection<E>,XGettingBag<E>,XGettingCollection<E>,XIterable<E>,XJoinable<E>,XProcessingBag<E>,XProcessingCollection<E>,XPutGetBag<E>,XPutGetCollection<E>,XPuttingBag<E>,XPuttingCollection<E>,XRemovingBag<E>,XRemovingCollection<E>
- All Known Subinterfaces:
XBasicList<E>,XLadder<E>,XList<E>
- All Known Implementing Classes:
ArrayCollector,BulkList,EqBulkList,LimitList,LockedList,Single,SubList,SynchList
public interface XBag<E> extends XPutGetBag<E>, XProcessingBag<E>, XCollection<E>
The naming for the type is based on the conception that a bag can contain any elements (including duplicates), but is definitely not ordered.
Apologies to the Apache guys (but honestly: why should the conception of a "bag" imply that its contained elements are counted? Apart from that, counting elements is such a specific addon logic, that the proper approach would be to extend an existing type, like CountingList, etc. but surely not "bag", which implies unordered content).
This will probably be a rather academic type and has been introduced more for reasons of completeness of the typing architecture, as in practice, list type collections will be preferred to pure bag type collections.
Bag type collections are architectural on par with the other level 1 collection types set and sequence.
Currently, the only known to be useful subtype of a bag is the level 2 collection type list, combining bag and sequence (order of elements).
-
Nested Class Summary
Nested Classes Modifier and Type Interface Description static interfaceXBag.Factory<E>Nested classes/interfaces inherited from interface one.microstream.collections.interfaces.ExtendedCollection
ExtendedCollection.Creator<E,C extends ExtendedCollection<E>>Nested classes/interfaces inherited from interface one.microstream.collections.types.XGettingCollection
XGettingCollection.Creator<E>Nested classes/interfaces inherited from interface one.microstream.collections.types.XIterable
XIterable.Executor<E>Nested classes/interfaces inherited from interface one.microstream.collections.types.XPutGetCollection
XPutGetCollection.Creator<E>Nested classes/interfaces inherited from interface one.microstream.collections.types.XPuttingBag
XPuttingBag.Creator<E> -
Method Summary
Modifier and Type Method Description XBag<E>addAll(E... elements)XBag<E>addAll(E[] elements, int srcStartIndex, int srcLength)XBag<E>addAll(XGettingCollection<? extends E> elements)XBag<E>copy()Creates a true copy of this collection which references the same elements as this collection does at the time the method is called.XBag<E>putAll(E... elements)Adds the specified elements to this collection if it is not already present (optional operation).XBag<E>putAll(E[] elements, int srcStartIndex, int srcLength)Adds the specified elements to this collection if it is not already present (optional operation).
Only the elements with indizes from the srcStartIndex to the srcStartIndex+srcLength are put in the collection.XBag<E>putAll(XGettingCollection<? extends E> elements)Adds the specified elements to this collection if it is not already present (optional operation).Methods inherited from interface one.microstream.collections.interfaces.CapacityCarrying
isFull, maximumCapacity, remainingCapacityMethods inherited from interface one.microstream.collections.interfaces.CapacityExtendable
currentCapacity, currentFreeCapacity, ensureCapacity, ensureFreeCapacityMethods inherited from interface one.microstream.collections.interfaces.ExtendedCollection
nullAllowedMethods inherited from interface one.microstream.collections.types.XAddingCollection
accept, add, nullAddMethods inherited from interface one.microstream.collections.types.XGettingCollection
applies, contains, containsAll, containsId, containsSearched, copyTo, count, countBy, distinct, distinct, equality, equals, equals, equalsContent, except, filterTo, get, hashCode, hasVolatileElements, intersect, intSize, iterator, join, max, min, nullContained, old, search, seek, size, toArray, toArray, unionMethods inherited from interface one.microstream.collections.types.XProcessingCollection
fetch, iterate, moveTo, pinch, removeBy, removeDuplicates, retrieve, retrieveByMethods inherited from interface one.microstream.collections.types.XRemovingCollection
clear, consolidate, nullRemove, optimize, remove, removeAll, removeDuplicates, removeOne, retainAll, truncate
-
Method Details
-
putAll
Description copied from interface:XPuttingBagAdds the specified elements to this collection if it is not already present (optional operation).In this implementation it is identical to
XPuttingBag.addAll(Object...)- Specified by:
putAllin interfaceXCollection<E>- Specified by:
putAllin interfaceXPutGetCollection<E>- Specified by:
putAllin interfaceXPuttingBag<E>- Specified by:
putAllin interfaceXPuttingCollection<E>- Parameters:
elements- to add- Returns:
- this
-
putAll
Description copied from interface:XPuttingBagAdds the specified elements to this collection if it is not already present (optional operation).
Only the elements with indizes from the srcStartIndex to the srcStartIndex+srcLength are put in the collection.In this implementation it is identical to
XPuttingBag.addAll(Object[], int, int)- Specified by:
putAllin interfaceXCollection<E>- Specified by:
putAllin interfaceXPutGetCollection<E>- Specified by:
putAllin interfaceXPuttingBag<E>- Specified by:
putAllin interfaceXPuttingCollection<E>- Parameters:
elements- to addsrcStartIndex- start index of elements-array to add to collectionsrcLength- length of elements-array to add to collection- Returns:
- this
-
putAll
Description copied from interface:XPuttingBagAdds the specified elements to this collection if it is not already present (optional operation).In this implementation it is identical to
XPuttingBag.addAll(XGettingCollection)- Specified by:
putAllin interfaceXCollection<E>- Specified by:
putAllin interfaceXPutGetCollection<E>- Specified by:
putAllin interfaceXPuttingBag<E>- Specified by:
putAllin interfaceXPuttingCollection<E>- Parameters:
elements- to add- Returns:
- this
-
addAll
- Specified by:
addAllin interfaceXAddGetCollection<E>- Specified by:
addAllin interfaceXAddingBag<E>- Specified by:
addAllin interfaceXAddingCollection<E>- Specified by:
addAllin interfaceXCollection<E>- Specified by:
addAllin interfaceXPutGetCollection<E>- Specified by:
addAllin interfaceXPuttingBag<E>
-
addAll
- Specified by:
addAllin interfaceXAddGetCollection<E>- Specified by:
addAllin interfaceXAddingBag<E>- Specified by:
addAllin interfaceXAddingCollection<E>- Specified by:
addAllin interfaceXCollection<E>- Specified by:
addAllin interfaceXPutGetCollection<E>- Specified by:
addAllin interfaceXPuttingBag<E>
-
addAll
- Specified by:
addAllin interfaceXAddGetCollection<E>- Specified by:
addAllin interfaceXAddingBag<E>- Specified by:
addAllin interfaceXAddingCollection<E>- Specified by:
addAllin interfaceXCollection<E>- Specified by:
addAllin interfaceXPutGetCollection<E>- Specified by:
addAllin interfaceXPuttingBag<E>
-
copy
Description copied from interface:XGettingCollectionCreates a true copy of this collection which references the same elements as this collection does at the time the method is called. The elements themselves are NOT copied (no deep copying).
The type of the returned set is the same as of this list if possible.- Specified by:
copyin interfaceCopyable- Specified by:
copyin interfaceXAddGetCollection<E>- Specified by:
copyin interfaceXCollection<E>- Specified by:
copyin interfaceXGettingBag<E>- Specified by:
copyin interfaceXGettingCollection<E>- Specified by:
copyin interfaceXProcessingBag<E>- Specified by:
copyin interfaceXPutGetCollection<E>- Returns:
- a copy of this list
-