public class PersistentHashMap extends APersistentMap implements IEditableCollection, IObj
Modifier and Type | Class and Description |
---|---|
(package private) static class |
PersistentHashMap.ArrayNode |
(package private) static class |
PersistentHashMap.BitmapIndexedNode |
(package private) static class |
PersistentHashMap.HashCollisionNode |
(package private) static interface |
PersistentHashMap.INode |
(package private) static class |
PersistentHashMap.NodeSeq |
(package private) static class |
PersistentHashMap.TransientHashMap |
APersistentMap.KeySeq, APersistentMap.ValSeq
IFn.D, IFn.DD, IFn.DDD, IFn.DDDD, IFn.DDDDD, IFn.DDDDL, IFn.DDDDO, IFn.DDDL, IFn.DDDLD, IFn.DDDLL, IFn.DDDLO, IFn.DDDO, IFn.DDDOD, IFn.DDDOL, IFn.DDDOO, IFn.DDL, IFn.DDLD, IFn.DDLDD, IFn.DDLDL, IFn.DDLDO, IFn.DDLL, IFn.DDLLD, IFn.DDLLL, IFn.DDLLO, IFn.DDLO, IFn.DDLOD, IFn.DDLOL, IFn.DDLOO, IFn.DDO, IFn.DDOD, IFn.DDODD, IFn.DDODL, IFn.DDODO, IFn.DDOL, IFn.DDOLD, IFn.DDOLL, IFn.DDOLO, IFn.DDOO, IFn.DDOOD, IFn.DDOOL, IFn.DDOOO, IFn.DL, IFn.DLD, IFn.DLDD, IFn.DLDDD, IFn.DLDDL, IFn.DLDDO, IFn.DLDL, IFn.DLDLD, IFn.DLDLL, IFn.DLDLO, IFn.DLDO, IFn.DLDOD, IFn.DLDOL, IFn.DLDOO, IFn.DLL, IFn.DLLD, IFn.DLLDD, IFn.DLLDL, IFn.DLLDO, IFn.DLLL, IFn.DLLLD, IFn.DLLLL, IFn.DLLLO, IFn.DLLO, IFn.DLLOD, IFn.DLLOL, IFn.DLLOO, IFn.DLO, IFn.DLOD, IFn.DLODD, IFn.DLODL, IFn.DLODO, IFn.DLOL, IFn.DLOLD, IFn.DLOLL, IFn.DLOLO, IFn.DLOO, IFn.DLOOD, IFn.DLOOL, IFn.DLOOO, IFn.DO, IFn.DOD, IFn.DODD, IFn.DODDD, IFn.DODDL, IFn.DODDO, IFn.DODL, IFn.DODLD, IFn.DODLL, IFn.DODLO, IFn.DODO, IFn.DODOD, IFn.DODOL, IFn.DODOO, IFn.DOL, IFn.DOLD, IFn.DOLDD, IFn.DOLDL, IFn.DOLDO, IFn.DOLL, IFn.DOLLD, IFn.DOLLL, IFn.DOLLO, IFn.DOLO, IFn.DOLOD, IFn.DOLOL, IFn.DOLOO, IFn.DOO, IFn.DOOD, IFn.DOODD, IFn.DOODL, IFn.DOODO, IFn.DOOL, IFn.DOOLD, IFn.DOOLL, IFn.DOOLO, IFn.DOOO, IFn.DOOOD, IFn.DOOOL, IFn.DOOOO, IFn.L, IFn.LD, IFn.LDD, IFn.LDDD, IFn.LDDDD, IFn.LDDDL, IFn.LDDDO, IFn.LDDL, IFn.LDDLD, IFn.LDDLL, IFn.LDDLO, IFn.LDDO, IFn.LDDOD, IFn.LDDOL, IFn.LDDOO, IFn.LDL, IFn.LDLD, IFn.LDLDD, IFn.LDLDL, IFn.LDLDO, IFn.LDLL, IFn.LDLLD, IFn.LDLLL, IFn.LDLLO, IFn.LDLO, IFn.LDLOD, IFn.LDLOL, IFn.LDLOO, IFn.LDO, IFn.LDOD, IFn.LDODD, IFn.LDODL, IFn.LDODO, IFn.LDOL, IFn.LDOLD, IFn.LDOLL, IFn.LDOLO, IFn.LDOO, IFn.LDOOD, IFn.LDOOL, IFn.LDOOO, IFn.LL, IFn.LLD, IFn.LLDD, IFn.LLDDD, IFn.LLDDL, IFn.LLDDO, IFn.LLDL, IFn.LLDLD, IFn.LLDLL, IFn.LLDLO, IFn.LLDO, IFn.LLDOD, IFn.LLDOL, IFn.LLDOO, IFn.LLL, IFn.LLLD, IFn.LLLDD, IFn.LLLDL, IFn.LLLDO, IFn.LLLL, IFn.LLLLD, IFn.LLLLL, IFn.LLLLO, IFn.LLLO, IFn.LLLOD, IFn.LLLOL, IFn.LLLOO, IFn.LLO, IFn.LLOD, IFn.LLODD, IFn.LLODL, IFn.LLODO, IFn.LLOL, IFn.LLOLD, IFn.LLOLL, IFn.LLOLO, IFn.LLOO, IFn.LLOOD, IFn.LLOOL, IFn.LLOOO, IFn.LO, IFn.LOD, IFn.LODD, IFn.LODDD, IFn.LODDL, IFn.LODDO, IFn.LODL, IFn.LODLD, IFn.LODLL, IFn.LODLO, IFn.LODO, IFn.LODOD, IFn.LODOL, IFn.LODOO, IFn.LOL, IFn.LOLD, IFn.LOLDD, IFn.LOLDL, IFn.LOLDO, IFn.LOLL, IFn.LOLLD, IFn.LOLLL, IFn.LOLLO, IFn.LOLO, IFn.LOLOD, IFn.LOLOL, IFn.LOLOO, IFn.LOO, IFn.LOOD, IFn.LOODD, IFn.LOODL, IFn.LOODO, IFn.LOOL, IFn.LOOLD, IFn.LOOLL, IFn.LOOLO, IFn.LOOO, IFn.LOOOD, IFn.LOOOL, IFn.LOOOO, IFn.OD, IFn.ODD, IFn.ODDD, IFn.ODDDD, IFn.ODDDL, IFn.ODDDO, IFn.ODDL, IFn.ODDLD, IFn.ODDLL, IFn.ODDLO, IFn.ODDO, IFn.ODDOD, IFn.ODDOL, IFn.ODDOO, IFn.ODL, IFn.ODLD, IFn.ODLDD, IFn.ODLDL, IFn.ODLDO, IFn.ODLL, IFn.ODLLD, IFn.ODLLL, IFn.ODLLO, IFn.ODLO, IFn.ODLOD, IFn.ODLOL, IFn.ODLOO, IFn.ODO, IFn.ODOD, IFn.ODODD, IFn.ODODL, IFn.ODODO, IFn.ODOL, IFn.ODOLD, IFn.ODOLL, IFn.ODOLO, IFn.ODOO, IFn.ODOOD, IFn.ODOOL, IFn.ODOOO, IFn.OL, IFn.OLD, IFn.OLDD, IFn.OLDDD, IFn.OLDDL, IFn.OLDDO, IFn.OLDL, IFn.OLDLD, IFn.OLDLL, IFn.OLDLO, IFn.OLDO, IFn.OLDOD, IFn.OLDOL, IFn.OLDOO, IFn.OLL, IFn.OLLD, IFn.OLLDD, IFn.OLLDL, IFn.OLLDO, IFn.OLLL, IFn.OLLLD, IFn.OLLLL, IFn.OLLLO, IFn.OLLO, IFn.OLLOD, IFn.OLLOL, IFn.OLLOO, IFn.OLO, IFn.OLOD, IFn.OLODD, IFn.OLODL, IFn.OLODO, IFn.OLOL, IFn.OLOLD, IFn.OLOLL, IFn.OLOLO, IFn.OLOO, IFn.OLOOD, IFn.OLOOL, IFn.OLOOO, IFn.OOD, IFn.OODD, IFn.OODDD, IFn.OODDL, IFn.OODDO, IFn.OODL, IFn.OODLD, IFn.OODLL, IFn.OODLO, IFn.OODO, IFn.OODOD, IFn.OODOL, IFn.OODOO, IFn.OOL, IFn.OOLD, IFn.OOLDD, IFn.OOLDL, IFn.OOLDO, IFn.OOLL, IFn.OOLLD, IFn.OOLLL, IFn.OOLLO, IFn.OOLO, IFn.OOLOD, IFn.OOLOL, IFn.OOLOO, IFn.OOOD, IFn.OOODD, IFn.OOODL, IFn.OOODO, IFn.OOOL, IFn.OOOLD, IFn.OOOLL, IFn.OOOLO, IFn.OOOOD, IFn.OOOOL
Modifier and Type | Field and Description |
---|---|
(package private) IPersistentMap |
_meta |
(package private) int |
count |
static PersistentHashMap |
EMPTY |
(package private) boolean |
hasNull |
private static java.lang.Object |
NOT_FOUND |
(package private) java.lang.Object |
nullValue |
(package private) PersistentHashMap.INode |
root |
_hash, _hasheq
Constructor and Description |
---|
PersistentHashMap(int count,
PersistentHashMap.INode root,
boolean hasNull,
java.lang.Object nullValue) |
PersistentHashMap(IPersistentMap meta,
int count,
PersistentHashMap.INode root,
boolean hasNull,
java.lang.Object nullValue) |
Modifier and Type | Method and Description |
---|---|
IPersistentMap |
assoc(java.lang.Object key,
java.lang.Object val) |
IPersistentMap |
assocEx(java.lang.Object key,
java.lang.Object val) |
PersistentHashMap.TransientHashMap |
asTransient() |
private static int |
bitpos(int hash,
int shift) |
private static java.lang.Object[] |
cloneAndSet(java.lang.Object[] array,
int i,
java.lang.Object a) |
private static java.lang.Object[] |
cloneAndSet(java.lang.Object[] array,
int i,
java.lang.Object a,
int j,
java.lang.Object b) |
private static PersistentHashMap.INode[] |
cloneAndSet(PersistentHashMap.INode[] array,
int i,
PersistentHashMap.INode a) |
boolean |
containsKey(java.lang.Object key) |
int |
count() |
static PersistentHashMap |
create(IPersistentMap meta,
java.lang.Object... init) |
static PersistentHashMap |
create(ISeq items) |
static IPersistentMap |
create(java.util.Map other) |
static PersistentHashMap |
create(java.lang.Object... init) |
private static PersistentHashMap.INode |
createNode(java.util.concurrent.atomic.AtomicReference<java.lang.Thread> edit,
int shift,
java.lang.Object key1,
java.lang.Object val1,
int key2hash,
java.lang.Object key2,
java.lang.Object val2) |
private static PersistentHashMap.INode |
createNode(int shift,
java.lang.Object key1,
java.lang.Object val1,
int key2hash,
java.lang.Object key2,
java.lang.Object val2) |
static PersistentHashMap |
createWithCheck(ISeq items) |
static PersistentHashMap |
createWithCheck(java.lang.Object... init) |
IPersistentCollection |
empty() |
IMapEntry |
entryAt(java.lang.Object key) |
java.lang.Object |
fold(long n,
IFn combinef,
IFn reducef,
IFn fjinvoke,
IFn fjtask,
IFn fjfork,
IFn fjjoin) |
(package private) static int |
hash(java.lang.Object k) |
java.util.Iterator |
iterator() |
java.lang.Object |
kvreduce(IFn f,
java.lang.Object init) |
(package private) static int |
mask(int hash,
int shift) |
IPersistentMap |
meta() |
private static java.lang.Object[] |
removePair(java.lang.Object[] array,
int i) |
ISeq |
seq() |
java.lang.Object |
valAt(java.lang.Object key) |
java.lang.Object |
valAt(java.lang.Object key,
java.lang.Object notFound) |
PersistentHashMap |
withMeta(IPersistentMap meta) |
IPersistentMap |
without(java.lang.Object key) |
clear, cons, containsValue, entrySet, equals, equiv, get, hashCode, hasheq, invoke, invoke, isEmpty, keySet, mapEquals, mapHash, mapHasheq, put, putAll, remove, size, toString, values
final int count
final PersistentHashMap.INode root
final boolean hasNull
final java.lang.Object nullValue
final IPersistentMap _meta
public static final PersistentHashMap EMPTY
private static final java.lang.Object NOT_FOUND
PersistentHashMap(int count, PersistentHashMap.INode root, boolean hasNull, java.lang.Object nullValue)
public PersistentHashMap(IPersistentMap meta, int count, PersistentHashMap.INode root, boolean hasNull, java.lang.Object nullValue)
public static IPersistentMap create(java.util.Map other)
public static PersistentHashMap create(java.lang.Object... init)
public static PersistentHashMap createWithCheck(java.lang.Object... init)
public static PersistentHashMap create(ISeq items)
public static PersistentHashMap createWithCheck(ISeq items)
public static PersistentHashMap create(IPersistentMap meta, java.lang.Object... init)
static int hash(java.lang.Object k)
public boolean containsKey(java.lang.Object key)
containsKey
in interface Associative
containsKey
in interface java.util.Map
public IMapEntry entryAt(java.lang.Object key)
entryAt
in interface Associative
public IPersistentMap assoc(java.lang.Object key, java.lang.Object val)
assoc
in interface Associative
assoc
in interface IPersistentMap
public java.lang.Object valAt(java.lang.Object key, java.lang.Object notFound)
public IPersistentMap assocEx(java.lang.Object key, java.lang.Object val)
assocEx
in interface IPersistentMap
public IPersistentMap without(java.lang.Object key)
without
in interface IPersistentMap
public java.util.Iterator iterator()
iterator
in interface java.lang.Iterable
public java.lang.Object kvreduce(IFn f, java.lang.Object init)
public java.lang.Object fold(long n, IFn combinef, IFn reducef, IFn fjinvoke, IFn fjtask, IFn fjfork, IFn fjjoin)
public int count()
count
in interface Counted
count
in interface IPersistentCollection
public IPersistentCollection empty()
empty
in interface IPersistentCollection
static int mask(int hash, int shift)
public PersistentHashMap withMeta(IPersistentMap meta)
public PersistentHashMap.TransientHashMap asTransient()
asTransient
in interface IEditableCollection
public IPersistentMap meta()
private static PersistentHashMap.INode[] cloneAndSet(PersistentHashMap.INode[] array, int i, PersistentHashMap.INode a)
private static java.lang.Object[] cloneAndSet(java.lang.Object[] array, int i, java.lang.Object a)
private static java.lang.Object[] cloneAndSet(java.lang.Object[] array, int i, java.lang.Object a, int j, java.lang.Object b)
private static java.lang.Object[] removePair(java.lang.Object[] array, int i)
private static PersistentHashMap.INode createNode(int shift, java.lang.Object key1, java.lang.Object val1, int key2hash, java.lang.Object key2, java.lang.Object val2)
private static PersistentHashMap.INode createNode(java.util.concurrent.atomic.AtomicReference<java.lang.Thread> edit, int shift, java.lang.Object key1, java.lang.Object val1, int key2hash, java.lang.Object key2, java.lang.Object val2)
private static int bitpos(int hash, int shift)