clojure.lang
Class PersistentArrayMap

java.lang.Object
  extended by clojure.lang.AFn
      extended by clojure.lang.APersistentMap
          extended by clojure.lang.PersistentArrayMap
All Implemented Interfaces:
Associative, Counted, IEditableCollection, IFn, IHashEq, ILookup, IMeta, IObj, IPersistentCollection, IPersistentMap, MapEquivalence, Seqable, Serializable, Iterable, Runnable, Callable, Map

public class PersistentArrayMap
extends APersistentMap
implements IObj, IEditableCollection

Simple implementation of persistent map on an array

Note that instances of this class are constant values i.e. add/remove etc return new values

Copies array on every change, so only appropriate for _very_small_ maps

null keys and values are ok, but you won't be able to distinguish a null value via valAt - use contains/entryAt

See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class clojure.lang.APersistentMap
APersistentMap.KeySeq, APersistentMap.ValSeq
 
Nested classes/interfaces inherited from interface java.util.Map
Map.Entry<K,V>
 
Nested classes/interfaces inherited from interface clojure.lang.IFn
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
 
Field Summary
static PersistentArrayMap EMPTY
           
 
Constructor Summary
protected PersistentArrayMap()
           
  PersistentArrayMap(IPersistentMap meta, Object[] init)
           
  PersistentArrayMap(Object[] init)
          This ctor captures/aliases the passed array, so do not modify later
 
Method Summary
 IPersistentMap assoc(Object key, Object val)
           
 IPersistentMap assocEx(Object key, Object val)
           
 ITransientMap asTransient()
           
 int capacity()
           
 boolean containsKey(Object key)
           
 int count()
           
static IPersistentMap create(Map other)
           
static PersistentArrayMap createWithCheck(Object[] init)
           
 IPersistentMap empty()
           
 IMapEntry entryAt(Object key)
           
 Iterator iterator()
           
 IPersistentMap meta()
           
 ISeq seq()
           
 Object valAt(Object key)
           
 Object valAt(Object key, Object notFound)
           
 PersistentArrayMap withMeta(IPersistentMap meta)
           
 IPersistentMap without(Object key)
           
 
Methods inherited from class clojure.lang.APersistentMap
clear, cons, containsValue, entrySet, equals, equiv, get, hashCode, hasheq, invoke, invoke, isEmpty, keySet, mapEquals, mapHash, put, putAll, remove, size, toString, values
 
Methods inherited from class clojure.lang.AFn
applyTo, applyToHelper, call, invoke, invoke, invoke, invoke, invoke, invoke, invoke, invoke, invoke, invoke, invoke, invoke, invoke, invoke, invoke, invoke, invoke, invoke, invoke, invoke, run, throwArity
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

EMPTY

public static final PersistentArrayMap EMPTY
Constructor Detail

PersistentArrayMap

protected PersistentArrayMap()

PersistentArrayMap

public PersistentArrayMap(Object[] init)
This ctor captures/aliases the passed array, so do not modify later

Parameters:
init - {key1,val1,key2,val2,...}

PersistentArrayMap

public PersistentArrayMap(IPersistentMap meta,
                          Object[] init)
Method Detail

create

public static IPersistentMap create(Map other)

withMeta

public PersistentArrayMap withMeta(IPersistentMap meta)
Specified by:
withMeta in interface IObj

createWithCheck

public static PersistentArrayMap createWithCheck(Object[] init)

count

public int count()
Specified by:
count in interface Counted
Specified by:
count in interface IPersistentCollection

containsKey

public boolean containsKey(Object key)
Specified by:
containsKey in interface Associative
Specified by:
containsKey in interface Map

entryAt

public IMapEntry entryAt(Object key)
Specified by:
entryAt in interface Associative

assocEx

public IPersistentMap assocEx(Object key,
                              Object val)
Specified by:
assocEx in interface IPersistentMap

assoc

public IPersistentMap assoc(Object key,
                            Object val)
Specified by:
assoc in interface Associative
Specified by:
assoc in interface IPersistentMap

without

public IPersistentMap without(Object key)
Specified by:
without in interface IPersistentMap

empty

public IPersistentMap empty()
Specified by:
empty in interface IPersistentCollection

valAt

public final Object valAt(Object key,
                          Object notFound)
Specified by:
valAt in interface ILookup

valAt

public Object valAt(Object key)
Specified by:
valAt in interface ILookup

capacity

public int capacity()

iterator

public Iterator iterator()
Specified by:
iterator in interface Iterable

seq

public ISeq seq()
Specified by:
seq in interface Seqable

meta

public IPersistentMap meta()
Specified by:
meta in interface IMeta

asTransient

public ITransientMap asTransient()
Specified by:
asTransient in interface IEditableCollection


Copyright © 2012. All Rights Reserved.