Class ItemIdentitySet
- All Implemented Interfaces:
Iterable<ItemIdentity>,Collection<ItemIdentity>,Set<ItemIdentity>
An implementation of a Set of ItemIdentity, optimized for memory consumption and objects count.
Implementation Notes
Statistics: compared to HashSet, 4x less memory taken, 1.5x slower. The number of objects is ~ 10 (compared to N*2 with HashSet), if all item IDs are long. String item IDs create K*2 objects as well.
-
Constructor Summary
ConstructorsConstructorDescriptionItemIdentitySet(ItemIdentity... ids) ItemIdentitySet(Collection<? extends ItemIdentity> ids) -
Method Summary
Modifier and TypeMethodDescriptionbooleanadd(ItemIdentity id) voidvoidbooleanaddAll(Collection<? extends ItemIdentity> c) voidclear()static Set<ItemIdentity>collectItemIds(RowRetriever rowRetriever, LongIterable rows) booleanbooleancontainsAll(Collection<?> c) copy()copyAllOfType(String typeId) booleaniterator()LongSizedIterablestatic ItemIdentitySetstatic ItemIdentitySetstatic ItemIdentitySetbooleanbooleanremoveAll(Collection<?> c) booleanretainAll(Collection<?> c) intsize()Methods inherited from class AbstractSet
equals, hashCodeMethods inherited from class AbstractCollection
isEmpty, toArray, toArray, toStringMethods inherited from interface Collection
parallelStream, removeIf, stream, toArrayMethods inherited from interface Set
isEmpty, spliterator, toArray, toArray
-
Constructor Details
-
ItemIdentitySet
public ItemIdentitySet() -
ItemIdentitySet
-
ItemIdentitySet
-
-
Method Details
-
of
-
of
-
of
-
iterator
- Specified by:
iteratorin interfaceCollection<ItemIdentity>- Specified by:
iteratorin interfaceIterable<ItemIdentity>- Specified by:
iteratorin interfaceSet<ItemIdentity>- Specified by:
iteratorin classAbstractCollection<ItemIdentity>
-
size
public int size()- Specified by:
sizein interfaceCollection<ItemIdentity>- Specified by:
sizein interfaceSet<ItemIdentity>- Specified by:
sizein classAbstractCollection<ItemIdentity>
-
contains
- Specified by:
containsin interfaceCollection<ItemIdentity>- Specified by:
containsin interfaceSet<ItemIdentity>- Overrides:
containsin classAbstractCollection<ItemIdentity>
-
containsAll
- Specified by:
containsAllin interfaceCollection<ItemIdentity>- Specified by:
containsAllin interfaceSet<ItemIdentity>- Overrides:
containsAllin classAbstractCollection<ItemIdentity>
-
add
- Specified by:
addin interfaceCollection<ItemIdentity>- Specified by:
addin interfaceSet<ItemIdentity>- Overrides:
addin classAbstractCollection<ItemIdentity>
-
addAll
- Specified by:
addAllin interfaceCollection<ItemIdentity>- Specified by:
addAllin interfaceSet<ItemIdentity>- Overrides:
addAllin classAbstractCollection<ItemIdentity>
-
addAll
-
addAll
-
remove
- Specified by:
removein interfaceCollection<ItemIdentity>- Specified by:
removein interfaceSet<ItemIdentity>- Overrides:
removein classAbstractCollection<ItemIdentity>
-
removeAll
- Specified by:
removeAllin interfaceCollection<ItemIdentity>- Specified by:
removeAllin interfaceSet<ItemIdentity>- Overrides:
removeAllin classAbstractSet<ItemIdentity>
-
retainAll
- Specified by:
retainAllin interfaceCollection<ItemIdentity>- Specified by:
retainAllin interfaceSet<ItemIdentity>- Overrides:
retainAllin classAbstractCollection<ItemIdentity>
-
makeImmutable
-
isImmutable
public boolean isImmutable() -
clear
public void clear()- Specified by:
clearin interfaceCollection<ItemIdentity>- Specified by:
clearin interfaceSet<ItemIdentity>- Overrides:
clearin classAbstractCollection<ItemIdentity>
-
getItemTypes
-
copyAllOfType
-
copy
-
longIds
-
stringIds
-
collectItemIds
@NotNull public static Set<ItemIdentity> collectItemIds(@NotNull RowRetriever rowRetriever, @Nullable LongIterable rows)
-