Hash

how to repeat key's?

···

--
Posted via http://www.ruby-forum.com/.

the keys for a hash are uniq.
what do u mean by 'repeat'?

···

2010/8/10 Dmitriy Makarov <makarovx@gmail.com>

how to repeat key's?
--
Posted via http://www.ruby-forum.com/\.

do you need a multivalue hash?

{key => val1, val2, val3 ...}

···

On Tue, 10 Aug 2010 17:37:09 +0900 Dmitriy Makarov <makarovx@gmail.com> wrote:

how to repeat key's?

you can find an example solution in "The Ruby way." by Hal Fulton.

···

On Tue, 10 Aug 2010 17:37:09 +0900 Dmitriy Makarov <makarovx@gmail.com> wrote:

how to repeat key's?

what do u mean by 'repeat'?

axample in java
HashMap h=ne HashMap();
h.put("key","value_1");
h.put("key","value_2");
h.put("key","value_N");

how to made in ruby

···

--
Posted via http://www.ruby-forum.com/\.

do you need a multivalue hash?
{key => val1, val2, val3 ...}

Yes

···

--
Posted via http://www.ruby-forum.com/\.

The Ruby hash is not a Java HashMap

x["key"] = "value_1"
x["key"] = "value_2"

puts x["key"] => "value_2"

The best you can do is:
1) Create a HashMap class for Ruby, a very simple task
2) Use lists to store the values

x["key"] = Array.new
x["key"] << "value_1"
x["key"] << "value_2"

puts x["key"] => ["value_1", "value_2"]

···

On 10 August 2010 10:05, Dmitriy Makarov <makarovx@gmail.com> wrote:

what do u mean by 'repeat'?

axample in java
HashMap h=ne HashMap();
h.put("key","value_1");
h.put("key","value_2");
h.put("key","value_N");

how to made in ruby

--
Posted via http://www.ruby-forum.com/\.

Dmitriy Makarov wrote:

do you need a multivalue hash?
{key => val1, val2, val3 ...}

Yes

(1)

myhash = Hash.new { |h,k| h[k] = }
myhash['key'] << 'val1'
myhash['key'] << 'val2'
myhash['key'] << 'val3'
p myhash
# {"key"=>["val1", "val2", "val3"]}
p myhash['key']
# ["val1", "val2", "val3"]

(2)

myhash = Hash.new { |h,k| h[k] = {} }
myhash['key']['val1'] = true
myhash['key']['val2'] = true
myhash['key']['val3'] = true
p myhash
# {"key"=>{"val3"=>true, "val1"=>true, "val2"=>true}}
p myhash['key'].keys
# ["val3", "val1", "val2"]

The latter has the property that duplicate values are eliminated, and
it's very quick to test for a particular value:

if myhash['key']['val1']
  ... etc
end

···

--
Posted via http://www.ruby-forum.com/\.

another way is to make a patch to Hash object, put ur own rules in it and u
will have a HashMap in ruby

···

2010/8/10 Peter Hickman <peterhickman386@googlemail.com>

The Ruby hash is not a Java HashMap

x["key"] = "value_1"
x["key"] = "value_2"

puts x["key"] => "value_2"

The best you can do is:
1) Create a HashMap class for Ruby, a very simple task
2) Use lists to store the values

x["key"] = Array.new
x["key"] << "value_1"
x["key"] << "value_2"

puts x["key"] => ["value_1", "value_2"]

On 10 August 2010 10:05, Dmitriy Makarov <makarovx@gmail.com> wrote:
>> what do u mean by 'repeat'?
>
> axample in java
> HashMap h=ne HashMap();
> h.put("key","value_1");
> h.put("key","value_2");
> h.put("key","value_N");
>
> how to made in ruby
>
>
>
> --
> Posted via http://www.ruby-forum.com/\.
>
>

On 10.08.2010 11:18, wrote Peter Hickman:

The Ruby hash is not a Java HashMap

x["key"] = "value_1"
x["key"] = "value_2"

puts x["key"] => "value_2"

The best you can do is:
1) Create a HashMap class for Ruby, a very simple task
2) Use lists to store the values

x["key"] = Array.new
x["key"] << "value_1"
x["key"] << "value_2"

puts x["key"] => ["value_1", "value_2"]

Why do that?
That's not how the given Java code behaves.

···

--
Jake Jarvis

actually u just need a method to put value in and return the overwrite
value, don't u?
so in a usual way u can write a Hash class to redefine its = method to
acheive that

···

2010/8/10 Jake Jarvis <pig_in_shoes@yahoo.com>

On 10.08.2010 11:18, wrote Peter Hickman:
> The Ruby hash is not a Java HashMap
>
> x["key"] = "value_1"
> x["key"] = "value_2"
>
> puts x["key"] => "value_2"
>
> The best you can do is:
> 1) Create a HashMap class for Ruby, a very simple task
> 2) Use lists to store the values
>
> x["key"] = Array.new
> x["key"] << "value_1"
> x["key"] << "value_2"
>
> puts x["key"] => ["value_1", "value_2"]

Why do that?
That's not how the given Java code behaves.

--
Jake Jarvis