static final class PersistentHashMap.HashCollisionNode extends java.lang.Object implements PersistentHashMap.INode
Modifier and Type | Field and Description |
---|---|
(package private) java.lang.Object[] |
array |
(package private) int |
count |
(package private) java.util.concurrent.atomic.AtomicReference<java.lang.Thread> |
edit |
(package private) int |
hash |
Constructor and Description |
---|
PersistentHashMap.HashCollisionNode(java.util.concurrent.atomic.AtomicReference<java.lang.Thread> edit,
int hash,
int count,
java.lang.Object... array) |
Modifier and Type | Method and Description |
---|---|
PersistentHashMap.INode |
assoc(java.util.concurrent.atomic.AtomicReference<java.lang.Thread> edit,
int shift,
int hash,
java.lang.Object key,
java.lang.Object val,
Box addedLeaf) |
PersistentHashMap.INode |
assoc(int shift,
int hash,
java.lang.Object key,
java.lang.Object val,
Box addedLeaf) |
private PersistentHashMap.HashCollisionNode |
editAndSet(java.util.concurrent.atomic.AtomicReference<java.lang.Thread> edit,
int i,
java.lang.Object a) |
private PersistentHashMap.HashCollisionNode |
editAndSet(java.util.concurrent.atomic.AtomicReference<java.lang.Thread> edit,
int i,
java.lang.Object a,
int j,
java.lang.Object b) |
private PersistentHashMap.HashCollisionNode |
ensureEditable(java.util.concurrent.atomic.AtomicReference<java.lang.Thread> edit) |
private PersistentHashMap.HashCollisionNode |
ensureEditable(java.util.concurrent.atomic.AtomicReference<java.lang.Thread> edit,
int count,
java.lang.Object[] array) |
IMapEntry |
find(int shift,
int hash,
java.lang.Object key) |
java.lang.Object |
find(int shift,
int hash,
java.lang.Object key,
java.lang.Object notFound) |
int |
findIndex(java.lang.Object key) |
java.lang.Object |
fold(IFn combinef,
IFn reducef,
IFn fjtask,
IFn fjfork,
IFn fjjoin) |
java.lang.Object |
kvreduce(IFn f,
java.lang.Object init) |
ISeq |
nodeSeq() |
PersistentHashMap.INode |
without(java.util.concurrent.atomic.AtomicReference<java.lang.Thread> edit,
int shift,
int hash,
java.lang.Object key,
Box removedLeaf) |
PersistentHashMap.INode |
without(int shift,
int hash,
java.lang.Object key) |
final int hash
int count
java.lang.Object[] array
final java.util.concurrent.atomic.AtomicReference<java.lang.Thread> edit
PersistentHashMap.HashCollisionNode(java.util.concurrent.atomic.AtomicReference<java.lang.Thread> edit, int hash, int count, java.lang.Object... array)
public PersistentHashMap.INode assoc(int shift, int hash, java.lang.Object key, java.lang.Object val, Box addedLeaf)
assoc
in interface PersistentHashMap.INode
public PersistentHashMap.INode without(int shift, int hash, java.lang.Object key)
without
in interface PersistentHashMap.INode
public IMapEntry find(int shift, int hash, java.lang.Object key)
find
in interface PersistentHashMap.INode
public java.lang.Object find(int shift, int hash, java.lang.Object key, java.lang.Object notFound)
find
in interface PersistentHashMap.INode
public ISeq nodeSeq()
nodeSeq
in interface PersistentHashMap.INode
public java.lang.Object kvreduce(IFn f, java.lang.Object init)
kvreduce
in interface PersistentHashMap.INode
public java.lang.Object fold(IFn combinef, IFn reducef, IFn fjtask, IFn fjfork, IFn fjjoin)
fold
in interface PersistentHashMap.INode
public int findIndex(java.lang.Object key)
private PersistentHashMap.HashCollisionNode ensureEditable(java.util.concurrent.atomic.AtomicReference<java.lang.Thread> edit)
private PersistentHashMap.HashCollisionNode ensureEditable(java.util.concurrent.atomic.AtomicReference<java.lang.Thread> edit, int count, java.lang.Object[] array)
private PersistentHashMap.HashCollisionNode editAndSet(java.util.concurrent.atomic.AtomicReference<java.lang.Thread> edit, int i, java.lang.Object a)
private PersistentHashMap.HashCollisionNode editAndSet(java.util.concurrent.atomic.AtomicReference<java.lang.Thread> edit, int i, java.lang.Object a, int j, java.lang.Object b)
public PersistentHashMap.INode assoc(java.util.concurrent.atomic.AtomicReference<java.lang.Thread> edit, int shift, int hash, java.lang.Object key, java.lang.Object val, Box addedLeaf)
assoc
in interface PersistentHashMap.INode
public PersistentHashMap.INode without(java.util.concurrent.atomic.AtomicReference<java.lang.Thread> edit, int shift, int hash, java.lang.Object key, Box removedLeaf)
without
in interface PersistentHashMap.INode