Create a Hash: Difference between revisions
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
Redirect to: