Mutable dictionary backed by a linked list.
public class list dictionary[readonly value key type, value value type]
extends base list dictionary[key type, value type]
implements dictionary[key type, value type]
public overload list dictionary(equivalence relation[key type] equivalence)
super(equivalence)
public overload list dictionary()
super(runtime utildefault equivalence !> equivalence relation[key type])
public overload list dictionary(key type the key, value type the value)
super(the key, the value, runtime utildefault equivalence !> equivalence relation[key type])
implement immutable dictionary[key type, value type] frozen copy()
implement void clear()
implement value type or null put(key type key, value type value)
var entry : entries
if entry is null
entries = entry cell[key type, value type] • new(key, value)
the size = 1
return missinginstance
loop
if equivalence(key, entrykey)
old value : entryvalue
entryset value(value)
return old value
next : entrynext
if next is null
entrynext = entry cell[key type, value type] • new(key, value)
the size += 1
return missinginstance
else
entry = next
implement value type or null remove(key type key)
var entry : entries
if entry is null
return missinginstance
if equivalence(key, entrykey)
old value : entryvalue
entries = entrynext
assert new size is nonnegative
the size = new size
return old value
loop
next entry : entrynext
if next entry is null
return missinginstance
if equivalence(key, next entrykey)
old value : next entryvalue
entrynext = next entrynext
assert new size is nonnegative
the size = new size
return old value
entry = next entry