Package org.armedbear.lisp
Class WeakHashTable
- java.lang.Object
-
- org.armedbear.lisp.LispObject
-
- org.armedbear.lisp.WeakHashTable
-
- All Implemented Interfaces:
Hashtable
,LispObject
public class WeakHashTable extends LispObject implements Hashtable
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected static class
WeakHashTable.Comparator
protected static class
WeakHashTable.EqlComparator
protected static class
WeakHashTable.EqualComparator
protected static class
WeakHashTable.EqualpComparator
-
Field Summary
Fields Modifier and Type Field Description protected org.armedbear.lisp.WeakHashTable.HashEntry[]
buckets
Array containing the actual key-value mappings.protected int
count
The actual current number of key-value pairs.protected static float
loadFactor
protected LispObject
rehashSize
protected LispObject
rehashThreshold
protected int
threshold
The rounded product of the capacity and the load factor.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description protected static int
calculateInitialCapacity(int size)
LispObject
classOf()
void
clear()
LispObject
ENTRIES()
Deprecated.boolean
equalp(LispObject obj)
LispObject
get(LispObject key)
int
getCount()
Number of entries stored in the hash buckets.LispObject
getEntries()
protected org.armedbear.lisp.WeakHashTable.HashEntry
getEntry(LispObject key)
LispObject
gethash(LispObject key)
LispObject
gethash(LispObject key, LispObject defaultValue)
LispObject
gethash1(LispObject key)
LispObject
getParts()
Implementing the getParts() protocol will allow INSPECT to return information about the substructure of a descendent of LispObject.LispObject
getRehashSize()
LispObject
getRehashThreshold()
int
getSize()
How many hash buckets exist in the underlying data structure.Symbol
getTest()
LispObject
getWeakness()
LispObject
MAPHASH(LispObject function)
static WeakHashTable
newEqHashTable(int size, LispObject rehashSize, LispObject rehashThreshold, LispObject weakness)
static WeakHashTable
newEqlHashTable(int size, LispObject rehashSize, LispObject rehashThreshold, LispObject weakness)
static WeakHashTable
newEqualHashTable(int size, LispObject rehashSize, LispObject rehashThreshold, LispObject weakness)
static WeakHashTable
newEqualpHashTable(int size, LispObject rehashSize, LispObject rehashThreshold, LispObject weakness)
java.lang.String
printObject()
int
psxhash()
void
put(LispObject key, LispObject value)
LispObject
puthash(LispObject key, LispObject newValue)
protected void
rehash()
LispObject
remhash(LispObject key)
LispObject
remove(LispObject key)
LispObject
typeOf()
LispObject
typep(LispObject type)
-
Methods inherited from class org.armedbear.lisp.LispObject
ABS, add, add, aref, AREF, AREF, aref_long, aset, aset, aset, ash, ash, atom, ATOM, caddr, cadr, car, cddr, cdr, CHAR, characterp, CHARACTERP, chars, COMPLEXP, constantp, CONSTANTP, copyToArray, decr, DENOMINATOR, dispatch, divideBy, doubleValue, elt, endp, ENDP, EQ, eql, eql, eql, EQL, equal, equal, EQUAL, equalp, evenp, EVENP, execute, execute, execute, execute, execute, execute, execute, execute, execute, execute, execute, floatp, FLOATP, floatValue, getBooleanValue, getCallCount, getDescription, getDocumentation, getFixnumSlotValue, getHotCount, getInstance, getPropertyList, getSlotValue, getSlotValue_0, getSlotValue_1, getSlotValue_2, getSlotValue_3, getSlotValueAsBoolean, getStringChars, getStringValue, getSymbolFunction, getSymbolFunctionOrDie, getSymbolSetfFunction, getSymbolSetfFunctionOrDie, getSymbolValue, incr, incrementCallCount, incrementHotCount, integerp, INTEGERP, intValue, IS_E, IS_GE, IS_GT, IS_LE, IS_LT, IS_NE, isEqualTo, isEqualTo, isGreaterThan, isGreaterThan, isGreaterThanOrEqualTo, isGreaterThanOrEqualTo, isLessThan, isLessThan, isLessThanOrEqualTo, isLessThanOrEqualTo, isNotEqualTo, isNotEqualTo, isSpecialOperator, isSpecialVariable, javaInstance, javaInstance, LDB, length, LENGTH, listp, LISTP, lockableInstance, LOGAND, LOGAND, LOGIOR, LOGIOR, LOGNOT, LOGXOR, LOGXOR, longValue, minusp, MINUSP, MOD, MOD, multiplyBy, multiplyBy, negate, noFillPointer, NOT, nreverse, NTH, NTH, nthcdr, numberp, NUMBERP, NUMERATOR, oddp, ODDP, plusp, PLUSP, princToString, psxhash, push, rationalp, RATIONALP, realp, REALP, resolve, reverse, RPLACA, RPLACD, SCHAR, setCallCount, setCar, setCdr, setDocumentation, setHotCount, setPropertyList, setSlotValue, setSlotValue, setSlotValue_0, setSlotValue_1, setSlotValue_2, setSlotValue_3, SIMPLE_STRING_P, SLOT_VALUE, STRING, stringp, STRINGP, subtract, subtract, SVREF, svset, sxhash, SYMBOLP, truncate, unreadableString, unreadableString, VECTOR_PUSH_EXTEND, VECTOR_PUSH_EXTEND, vectorp, VECTORP, vectorPushExtend, zerop, ZEROP
-
-
-
-
Field Detail
-
loadFactor
protected static final float loadFactor
- See Also:
- Constant Field Values
-
rehashSize
protected final LispObject rehashSize
-
rehashThreshold
protected final LispObject rehashThreshold
-
threshold
protected int threshold
The rounded product of the capacity and the load factor. When the number of elements exceeds the threshold, the implementation calls rehash().
-
buckets
protected volatile org.armedbear.lisp.WeakHashTable.HashEntry[] buckets
Array containing the actual key-value mappings.
-
count
protected volatile int count
The actual current number of key-value pairs.
-
-
Method Detail
-
calculateInitialCapacity
protected static int calculateInitialCapacity(int size)
-
newEqHashTable
public static WeakHashTable newEqHashTable(int size, LispObject rehashSize, LispObject rehashThreshold, LispObject weakness)
-
newEqlHashTable
public static WeakHashTable newEqlHashTable(int size, LispObject rehashSize, LispObject rehashThreshold, LispObject weakness)
-
newEqualHashTable
public static WeakHashTable newEqualHashTable(int size, LispObject rehashSize, LispObject rehashThreshold, LispObject weakness)
-
newEqualpHashTable
public static WeakHashTable newEqualpHashTable(int size, LispObject rehashSize, LispObject rehashThreshold, LispObject weakness)
-
getRehashSize
public final LispObject getRehashSize()
-
getRehashThreshold
public final LispObject getRehashThreshold()
-
getSize
public int getSize()
How many hash buckets exist in the underlying data structure.
-
getCount
public int getCount()
Number of entries stored in the hash buckets.
-
typeOf
public LispObject typeOf()
- Specified by:
typeOf
in interfaceLispObject
- Overrides:
typeOf
in classLispObject
-
classOf
public LispObject classOf()
- Overrides:
classOf
in classLispObject
-
typep
public LispObject typep(LispObject type)
- Overrides:
typep
in classLispObject
-
equalp
public boolean equalp(LispObject obj)
- Overrides:
equalp
in classLispObject
-
getParts
public LispObject getParts()
Description copied from class:LispObject
Implementing the getParts() protocol will allow INSPECT to return information about the substructure of a descendent of LispObject. The protocol is to return a List of Cons pairs, where the car of each pair contains a decriptive string, and the cdr returns a subobject for inspection.- Overrides:
getParts
in classLispObject
-
clear
public void clear()
-
gethash
public LispObject gethash(LispObject key)
-
gethash
public LispObject gethash(LispObject key, LispObject defaultValue)
-
gethash1
public LispObject gethash1(LispObject key)
-
puthash
public LispObject puthash(LispObject key, LispObject newValue)
-
remhash
public LispObject remhash(LispObject key)
-
printObject
public java.lang.String printObject()
- Overrides:
printObject
in classLispObject
-
getTest
public Symbol getTest()
-
getWeakness
public LispObject getWeakness()
-
getEntry
protected org.armedbear.lisp.WeakHashTable.HashEntry getEntry(LispObject key)
-
get
public LispObject get(LispObject key)
-
put
public void put(LispObject key, LispObject value)
-
remove
public LispObject remove(LispObject key)
-
rehash
protected void rehash()
-
ENTRIES
@Deprecated public LispObject ENTRIES()
Deprecated.
-
getEntries
public LispObject getEntries()
- Specified by:
getEntries
in interfaceHashtable
-
MAPHASH
public LispObject MAPHASH(LispObject function)
-
psxhash
public int psxhash()
- Overrides:
psxhash
in classLispObject
-
-