Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Ruby: Общие вопросы > аналог java HashMap


Автор: implements 10.8.2010, 11:14
Есть ли в ruby HashMap как в java? читал что Hash не поддерживает повторяющиеся ключи, что мол нужно самому выкручиваться, так это? или есть простой способ?

Автор: source777 10.8.2010, 19:55
implements, ты реально считаешь что все программисты, использующие Ruby и открыто недолюбливающие Enterprise идеологию, должны знать особенности реализации классов насквозь энтерпрайзной джавы? Описывай задачу, а не ищи аналоги.

Цитата(implements @  10.8.2010,  11:14 Найти цитируемый пост)
читал что Hash не поддерживает повторяющиеся ключи

Ну так это одно из основных свойств любой хеш-таблицы. Или по твоему после
hash[key] = 1
hash[key] = 100
hash[key] должно возвращать 1 или 100 в зависимости от датчика псевдослучайных чисел?

Цитата(implements @  10.8.2010,  11:14 Найти цитируемый пост)
что мол нужно самому выкручиваться, так это? или есть простой способ? 

Для начала опиши по-человечески что ты хочешь сделать.

Автор: implements 11.8.2010, 07:26
source777,  Да точно, что то я вчера с постом намудрил, ну со всяким бывает=)

Вообще мне нужна коллекция, <имя,object>
т.е. лист, в котором по имени я буду вытаскивать нужный объект

ПС не знаю с чего я взял, что ключи должны повторятся, сам досихпор не пойму   smile 
Наоборот ключ должен быть разным=)


Автор: source777 11.8.2010, 12:49
Цитата(implements @  11.8.2010,  07:26 Найти цитируемый пост)
Вообще мне нужна коллекция, <имя,object>
ключ должен быть разным

Ну что ж значит вопрос решён - обычный Hash подходит. 

Автор: implements 11.8.2010, 13:02
source777,  Да спасибо, тока щас попробую  можно ли в цикле доавлять <ключ, значение>

Автор: bilbobagginz 16.8.2010, 15:56
Код

h = {}
10.times { |i| h[i.to_s]=i }
j = 3
if h.has_key?(j.to_s)
  puts "in h[#{j.to_s}] we have #{h[j.to_s]}"
else
  puts "... I thought I just added a key  " + j
end

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)