49 lines
723 B
Ruby
49 lines
723 B
Ruby
|
# almost simplest hash imaginable. make good use of arrays
|
||
|
class Hash
|
||
|
def initialize
|
||
|
@keys = Array.new()
|
||
|
@values = Array.new()
|
||
|
end
|
||
|
def empty?
|
||
|
@keys.nil?
|
||
|
end
|
||
|
|
||
|
def length()
|
||
|
return @keys.length()
|
||
|
end
|
||
|
|
||
|
def get(key)
|
||
|
index = key_index(key)
|
||
|
if( index )
|
||
|
@keys[index]
|
||
|
else
|
||
|
nil
|
||
|
end
|
||
|
end
|
||
|
|
||
|
def key_index(key)
|
||
|
len = @keys.length()
|
||
|
index = 0
|
||
|
found = nil
|
||
|
while(index < len)
|
||
|
if( @keys[index] == key)
|
||
|
found = index
|
||
|
break
|
||
|
end
|
||
|
index += 1
|
||
|
end
|
||
|
found
|
||
|
end
|
||
|
|
||
|
def set(key , value)
|
||
|
index = key_index(key)
|
||
|
if( index )
|
||
|
@keys[index] = value
|
||
|
else
|
||
|
@keys.push(key)
|
||
|
@value.push(value)
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
|