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.ValSeqIFn.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, valuesfinal 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 AssociativecontainsKey in interface java.util.Mappublic IMapEntry entryAt(java.lang.Object key)
entryAt in interface Associativepublic IPersistentMap assoc(java.lang.Object key, java.lang.Object val)
assoc in interface Associativeassoc in interface IPersistentMappublic 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 IPersistentMappublic IPersistentMap without(java.lang.Object key)
without in interface IPersistentMappublic java.util.Iterator iterator()
iterator in interface java.lang.Iterablepublic 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 Countedcount in interface IPersistentCollectionpublic IPersistentCollection empty()
empty in interface IPersistentCollectionstatic int mask(int hash,
       int shift)
public PersistentHashMap withMeta(IPersistentMap meta)
public PersistentHashMap.TransientHashMap asTransient()
asTransient in interface IEditableCollectionpublic 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)