E
- The type of event this history contains.public abstract class AbstractUserHistory<E extends Event> extends AbstractList<E> implements UserHistory<E>
UserHistory
to provide default
implementations of convenience methods.modCount
Constructor and Description |
---|
AbstractUserHistory() |
Modifier and Type | Method and Description |
---|---|
LongSet |
itemSet()
Get the set of items touched by events in this history.
|
<T> T |
memoize(Function<? super UserHistory<E>,? extends T> func)
Apply a function to this history, memoizing its return value.
|
add, add, addAll, clear, equals, get, hashCode, indexOf, iterator, lastIndexOf, listIterator, listIterator, remove, removeRange, set, subList
addAll, contains, containsAll, isEmpty, remove, removeAll, retainAll, size, toArray, toArray, toString
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
filter, filter, getUserId
add, add, addAll, addAll, clear, contains, containsAll, equals, get, hashCode, indexOf, isEmpty, iterator, lastIndexOf, listIterator, listIterator, remove, remove, removeAll, replaceAll, retainAll, set, size, sort, spliterator, subList, toArray, toArray
parallelStream, removeIf, stream
public LongSet itemSet()
UserHistory
itemSet
in interface UserHistory<E extends Event>
public <T> T memoize(Function<? super UserHistory<E>,? extends T> func)
UserHistory
Function.equals(Object)
and Object.hashCode()
methods
in order for memoization to work well.
This method is not guaranteed to be synchronized. It is safe to memoize
distinct functions in parallel, but potentially-parallel use of the same
function must be synchronized by client code or the function may be called
twice. The implementation in AbstractUserHistory
uses a
ConcurrentHashMap
. Multiple calls are therefore safe, but may
result in extra work. All implementations must maintain this safety
guarantee, although they may do so by synchronizing this method.
memoize
in interface UserHistory<E extends Event>
T
- The return type of the function.func
- The function to call and memoize.