8 assoc := array at: (self find: key).
17 index := self find: key.
18 assoc := array at: index.
20 assoc ifNotNil: [assoc value: anObject. ^ anObject].
22 self at: index include: (Association key: key value: anObject).
30 self do: [ :assoc | keys include: assoc key ].
37 values := WriteStream on: (Array new: self size).
38 self do: [ :assoc | values nextPut: assoc value ].
46 self do: [ :assoc | aBlock value: assoc key ]!
50 self do: [ :assoc | aBlock value: assoc value ]!
56 stream := WriteStream on: (Array new: self size).
58 (aBlock value: assoc value)
59 ifTrue: [stream nextPut: assoc value]].
72 (array at: (self find: anObject)) ifNil: [^ false].
79 remove: anObject ifAbsent: aBlock
80 self shouldNotImplement!
83 removeKey: anObject ifAbsent: aBlock
86 index := self find: anObject.
87 assoc := array at: index.
88 assoc ifNil: [^ aBlock value].
90 self removeAtIndex: index.
96 ^ self removeKey: anObject ifAbsent: [self error: 'key not found']!
99 find: anObject in: anArray
102 mask := anArray size - 1.
104 i := (anObject hash bitAnd: mask) + 1.
108 object := anArray at: i.
112 (object key = anObject)
115 i := (i + 106720 bitAnd: mask) + 1.