Create a Hash: Difference between revisions

From Rosetta Code
Content added Content deleted
(Added maintenance template)
m (fix redirect)
 
(3 intermediate revisions by 2 users not shown)
Line 1: Line 1:
#REDIRECT [[Associative array/Creation]]
{{task}}

Create a Hash object that links keys to values and returns a pre-specified element when a key is unknown.

{{maintenance}}

==[[C plus plus|C++]]==
[[Category:C plus plus]]
'''Compiler:''' g++ 4.0.2

#include <map>
int
main( int argc, char* argv[] )
{
std::map< std::string, std::string > hash ;
hash[ "key-1" ] = "val1" ;
}

==[[C sharp|C#]]==
[[Category:C sharp]]
Defining a Hash

System.Collections.HashTable h = new System.Collections.HashTable();

Adding values
h.add( "key1" , "foo" );
h.add( "key2" , "bar" );

or

h["key1"] = "foo";
h["key2"] = "bar";

----

Hash in .NET 2.0

Dictionary<string, string> hash = new Dictionary<string,string>();
hash.Add( "key1", "foo" );

or

Dictionary<string, string> hash = new Dictionary<string,string>();
hash[ "key1" ] = "foo";


==[[ColdFusion]]==
[[Category:ColdFusion]]
<cfset myHash = structNew()>
<cfset myHash.key1 = "foo">
<cfset myHash["key2"] = "bar">
<cfset myHash.put("key3","java-style")>

In ColdFusion, a map is literally a java.util.HashMap, thus the above 3rd method is possible.

==[[Common Lisp]]==
[[Category:Common Lisp]]
(setf my-hash (make-hash-table))
(setf (gethash "H2O" my-hash) "Water")
(setf (gethash "HCl" my-hash) "Hydrochloric Acid")
(setf (gethash "CO" my-hash) "Carbon Monoxide")

==[[Perl]]==
[[Category:Perl]]
'''Interpeter:''' Perl

Defining a Hash

# using => key does not need to be quoted unless it contains special chars
my %hash = (
key1 => 'val1',
'key-2' => 2,
three => -238.83,
4 => 'val3',
);
# using , both key and value need to be quoted if containing something non-numeric in nature
my %hash = (
'key1', 'val1',
'key-2', 2,
'three', -238.83,
4, 'val3',
);

Defining a HashRef

my $hashref = {
key1 => 'val1',
'key-2' => 2,
three => -238.83,
4 => 'val3',
}

Using a Hash

print $hash{'key1'};
$hash{'key1'} = 'val1';
@hash{'key1', 'three'} = ('val1', -238.83);

Using a HashRef

print $hash->{'key1'};
$hash->{'key1'} = 'val1';
@hash->{'key1', 'three'} = ('val1', -238.83);

==[[Python]]==
[[Category:Python]]
Hashes are a built-in type called dictionaries (or mappings) in Python.

hash = dict() # 'dict' is the dictionary type.
hash = dict(red="FF0000", green="00FF00", blue="0000FF")
hash = { 'key1':1, 'key2':2, }
value = hash[key]

Numerous methods exist for the mapping type http://docs.python.org/lib/typesmapping.html

==[[Ruby]]==
[[Category:Ruby]]
#a hash object that returns nil for unknown keys
hash={}
hash[666]='devil'
hash[777] # => nil
hash[666] # => 'devil'

#a hash object that returns 'unknown key' for unknown keys
hash=Hash.new('unknown key')
hash[666]='devil'
hash[777] # => 'unknown key'
hash[666] # => 'devil'

#a hash object that returns "unknown key #{key}" for unknown keys
hash=Hash.new{|h,k|h[k]="unknown key #{k}"}
hash[666]='devil'
hash[777] # => 'unknown key 777'
hash[666] # => 'devil'

==[[SmallTalk]]==
[[Category:SmallTalk]]

"Tested with Dolphin Smalltalk"
states := Dictionary new.
states at: 'MI' put: 'Michigan'.
states at: 'MN' put: 'Minnesota'.

==[[Lua]]==
[[Category:Lua]]

Lua tables are Hashes
hash = {}
hash[ "key-1" ] = "val1"
hash[ "key-2" ] = 1
hash[ "key-3" ] = {}
Returns nil on unknown key.

Latest revision as of 19:09, 9 March 2013