use simple array based hash, so assembly of it will be easy

This commit is contained in:
Torsten Ruger 2014-08-28 16:20:09 +03:00
parent 0bc0506c5a
commit d3c4087871

48
lib/parfait/hash.rb Normal file
View File

@ -0,0 +1,48 @@
# 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