Associative array/Creation: Difference between revisions
No edit summary |
(Undo revision 5228 by Special:Contributions/221.17.188.80 (User talk:221.17.188.80)) |
||
Line 1: | Line 1: | ||
{{task}} |
|||
[http://wwwx.cs.unc.edu/~kmp/twiki40/pub/Main/SelmaJeremy/jivugyv.htm alltel ringtones] [http://www.hollins.edu/ubb/Forum32/HTML/000371.html free music ringtones] [http://bugzilla.internet2.edu/attachment.cgi?id=748 soma online] [http://www.coe.unt.edu/chec/forum/forum_posts.asp?TID=52 free funny ringtones] [http://bugzilla.internet2.edu/attachment.cgi?id=731 funny ringtones] [http://ccfl.unl.edu/twiki/pub/Main/SummersFrank/cogope.htm cialis] [http://dcc.syr.edu/dforum/message.asp?MessageID=49058 free tracfone ringtones] [http://ccfl.unl.edu/twiki/pub/Main/SummersFrank/solizup.htm buy tramadol] [http://cyrusimap.web.cmu.edu/twiki/bin/view/Main/ArturJonson order xanax] [http://ccfl.unl.edu/twiki/pub/Main/MarthaBell/duxeru.htm but vigrx] [http://dcc.syr.edu/dforum/message.asp?MessageID=49066 free samsung ringtones] [http://ccfl.unl.edu/twiki/pub/Main/SummersFrank/wytyvib.htm fioricet online] [http://bugzilla.internet2.edu/attachment.cgi?id=741 buy paxil] [http://www.coe.unt.edu/chec/forum/forum_posts.asp?TID=40 ambien online] [http://ccfl.unl.edu/twiki/pub/Main/PaulinePauline/tijohyw.htm sprint ringtones] [http://wwwx.cs.unc.edu/~kmp/twiki40/pub/Main/PhillipRewers/jetok.htm mp3 ringtones] [http://www.coe.unt.edu/chec/forum/forum_posts.asp?TID=20 fioricet online] [http://wwwx.cs.unc.edu/~kmp/twiki40/pub/Main/BettySmith/pefuwe.htm order lipitor] [http://ist.greenville.edu/drupal/files/wohux.html ultracet online] [http://wwwx.cs.unc.edu/~kmp/twiki40/pub/Main/BettySmith/ligi.htm tenuate online] [http://grid.unimelb.edu.au/twiki/pub/Main/JamesMiller/cucof.htm soma online] [http://cyrusimap.web.cmu.edu/twiki/bin/view/Main/LukeLookin phentermine online] [http://ccfl.unl.edu/twiki/pub/Main/AlexCarneyham/pinucep.htm cheap vicodin] [http://ccfl.unl.edu/twiki/pub/Main/HermanHogg/hujox.htm ortho online] [http://ist.greenville.edu/drupal/files/wusywyx.html vicodin online] [http://ist.greenville.edu/drupal/files/lunic.html levitra online] [http://dcc.syr.edu/dforum/message.asp?MessageID=49024 online adipex] [http://ccfl.unl.edu/twiki/pub/Main/PaulinePauline/vuxinuz.htm free motorola ringtones] [http://bugzilla.internet2.edu/attachment.cgi?id=722 adipex online] [http://www.hollins.edu/ubb/Forum32/HTML/000365.html nextel ringtones] [http://www.coe.unt.edu/chec/forum/forum_posts.asp?TID=21 ultram online] [http://wwwx.cs.unc.edu/~kmp/twiki40/pub/Main/PhillipRewers/jusify.htm free nokia ringtones] [http://devel.linux.duke.edu/bugzilla/attachment.cgi?id=262 funny ringtones] [http://dcc.syr.edu/dforum/message.asp?MessageID=48922 carisoprodol online] [http://bugzilla.internet2.edu/attachment.cgi?id=742 buy phentermine] [http://www.hollins.edu/ubb/Forum32/HTML/000283.html order valium] [http://ccfl.unl.edu/twiki/pub/Main/PaulinePauline/jowili.htm free qwest ringtones] [http://www.hollins.edu/ubb/Forum32/HTML/000342.html cheap tenuate] [http://bugzilla.internet2.edu/attachment.cgi?id=750 sonyericsson ringtones] [http://wwwx.cs.unc.edu/~kmp/twiki40/pub/Main/PhillipRewers/licox.htm free motorola ringtones] [http://www.hollins.edu/ubb/Forum32/HTML/000319.html cheap cyclobenzaprine] [http://www.hollins.edu/ubb/Forum32/HTML/000295.html norco online] [http://wwwx.cs.unc.edu/~kmp/twiki40/pub/Main/JustinJonson/tokuny.htm cheap lortab] [http://www.hollins.edu/ubb/Forum32/HTML/000354.html flexeril online] [http://bugzilla.internet2.edu/attachment.cgi?id=752 tracfone ringtones] [http://www.hollins.edu/ubb/Forum32/HTML/000285.html carisoprodol online] [http://www.hollins.edu/ubb/Forum32/HTML/000299.html paxil] [http://dcc.syr.edu/dforum/message.asp?MessageID=49063 qwest ringtones] [http://devel.linux.duke.edu/bugzilla/attachment.cgi?id=249 buy tramadol] [http://ccfl.unl.edu/twiki/pub/Main/AlexCarneyham/sywexyc.htm buy levitra] [http://wwwx.cs.unc.edu/~kmp/twiki40/pub/Main/RobertSmith/zexuc.htm cheap didrex] [http://www.hollins.edu/ubb/Forum32/HTML/000380.html punk ringtones] [http://ccfl.unl.edu/twiki/pub/Main/AlexCarneyham/kite.htm ultracet online] [http://www.hollins.edu/ubb/Forum32/HTML/000311.html hydrocodone online] [http://www.coe.unt.edu/chec/forum/forum_posts.asp?TID=42 xenical online] [http://ist.greenville.edu/drupal/files/luho.html nokia ringtones] [http://wwwx.cs.unc.edu/~kmp/twiki40/pub/Main/SelmaJeremy/rufog.htm free sprint ringtones] [http://wwwx.cs.unc.edu/~kmp/twiki40/pub/Main/JustinJonson/jujope.htm buy diethylpropion] [http://www.hollins.edu/ubb/Forum32/HTML/000294.html adipex] [http://ccfl.unl.edu/twiki/pub/Main/PaulinePauline/roteryh.htm free polyphonic ringtones] [http://cyrusimap.web.cmu.edu/twiki/bin/view/Main/AndreaHolivel cialis online] [http://dcc.syr.edu/dforum/message.asp?MessageID=49016 order ultram] [http://www.hollins.edu/ubb/Forum32/HTML/000336.html clomid online] [http://wwwx.cs.unc.edu/~kmp/twiki40/pub/Main/SelmaJeremy/hijosij.htm sagem ringtones] [http://ist.greenville.edu/drupal/files/bigibe.html nextel ringtones] [http://dcc.syr.edu/dforum/message.asp?MessageID=49027 cheap alprazolam] [http://www.hollins.edu/ubb/Forum32/HTML/000288.html order ultram] [http://ccfl.unl.edu/twiki/pub/Main/AlexCarneyham/hicif.htm cheap alprazolam] [http://ccfl.unl.edu/twiki/pub/Main/PaulinePauline/sujy.htm free samsung ringtones] [http://www.coe.unt.edu/chec/forum/forum_posts.asp?TID=25 viagra online] [http://bugzilla.internet2.edu/attachment.cgi?id=735 motorola ringtones] [http://wwwx.cs.unc.edu/~kmp/twiki40/pub/Main/AshleighRodriquez/jybuhi.htm cheap viagra] [http://dcc.syr.edu/dforum/message.asp?MessageID=48916 order phentermine] [http://devel.linux.duke.edu/bugzilla/attachment.cgi?id=256 cheap ultram] [http://bugzilla.internet2.edu/attachment.cgi?id=760 diazepam online] [http://wwwx.cs.unc.edu/~kmp/twiki40/pub/Main/JustinJonson/xyhyj.htm cheap rivotril] [http://ccfl.unl.edu/twiki/pub/Main/SummersFrank/vuru.htm ativan online] [http://ccfl.unl.edu/twiki/pub/Main/AlexCarneyham/hykidi.htm clonazepam online] [http://www.hollins.edu/ubb/Forum32/HTML/000281.html tramadol online] [http://devel.linux.duke.edu/bugzilla/attachment.cgi?id=253 buy carisoprodol] [http://www.coe.unt.edu/chec/forum/forum_posts.asp?TID=26 cheap meridia] [http://ist.greenville.edu/drupal/files/dydyse.html valium online] [http://ccfl.unl.edu/twiki/pub/Main/HermanHogg/rukexo.htm cheap zoloft] [http://ist.greenville.edu/drupal/files/kuxer.html cheap cyclobenzaprine] [http://wwwx.cs.unc.edu/~kmp/twiki40/pub/Main/SelmaJeremy/cybo.htm free sonyericsson ringtones] [http://ccfl.unl.edu/twiki/pub/Main/MarthaBell/nezyz.htm order flexeril] [http://ccfl.unl.edu/twiki/pub/Main/SummersFrank/lyfogo.htm xanax] [http://ccfl.unl.edu/twiki/pub/Main/MarthaBell/wofo.htm free nokia ringtones] [http://grid.unimelb.edu.au/twiki/pub/Main/JamesMiller/sonuhop.htm cheap valium] [http://wwwx.cs.unc.edu/~kmp/twiki40/pub/Main/RobertSmith/pevesuz.htm cheap wellbutrin] [http://ccfl.unl.edu/twiki/pub/Main/HermanHogg/rypel.htm online sildenafil] [http://www.hollins.edu/ubb/Forum32/HTML/000339.html zoloft online] [http://devel.linux.duke.edu/bugzilla/attachment.cgi?id=251 valium online] [http://www.hollins.edu/ubb/Forum32/HTML/000384.html midi ringtones] [http://www.hollins.edu/ubb/Forum32/HTML/000290.html cialis online] [http://bugzilla.internet2.edu/attachment.cgi?id=744 free qwest ringtones] [http://devel.linux.duke.edu/bugzilla/attachment.cgi?id=266 free real ringtones] [http://wwwx.cs.unc.edu/~kmp/twiki40/pub/Main/PhillipRewers/kino.htm free real ringtones] [http://wwwx.cs.unc.edu/~kmp/twiki40/pub/Main/SelmaJeremy/belizyl.htm polyphonic ringtones] [http://wwwx.cs.unc.edu/~kmp/twiki40/pub/Main/PhillipRewers/dijuxoj.htm tracfone ringtones] [http://www.hollins.edu/ubb/Forum32/HTML/000322.html cheap ultracet] [http://www.coe.unt.edu/chec/forum/forum_posts.asp?TID=28 norco online] [http://dcc.syr.edu/dforum/message.asp?MessageID=49072 polyphonic ringtones] [http://bugzilla.internet2.edu/attachment.cgi?id=732 levitra online] [http://ccfl.unl.edu/twiki/pub/Main/AlexCarneyham/woguked.htm ambien online] [http://www.hollins.edu/ubb/Forum32/HTML/000334.html cheap sildenafil] [http://www.hollins.edu/ubb/Forum32/HTML/000333.html prozac online] [http://ist.greenville.edu/drupal/files/rucod.html online xanax] [http://www.hollins.edu/ubb/Forum32/HTML/000343.html cheap ortho] [http://ist.greenville.edu/drupal/files/wypy.html funny ringtones] [http://www.hollins.edu/ubb/Forum32/HTML/000296.html vicodin online] [http://wwwx.cs.unc.edu/~kmp/twiki40/pub/Main/BilyKroft/koky.htm cheap phentermine] [http://bugzilla.internet2.edu/attachment.cgi?id=740 norco online] [http://ccfl.unl.edu/twiki/pub/Main/HermanHogg/figog.htm lortab online] [http://ccfl.unl.edu/twiki/pub/Main/AlexCarneyham/kozu.htm hydrocodone online] [http://www.coe.unt.edu/chec/forum/forum_posts.asp?TID=24 ativan online] [http://wwwx.cs.unc.edu/~kmp/twiki40/pub/Main/AshleighRodriquez/godufit.htm buy paxil] [http://wwwx.cs.unc.edu/~kmp/twiki40/pub/Main/SelmaJeremy/sevuv.htm mono ringtones] [http://bugzilla.internet2.edu/attachment.cgi?id=755 valium online] [http://grid.unimelb.edu.au/twiki/pub/Main/JamesMiller/sicofyr.htm cheap tramadol] [http://wwwx.cs.unc.edu/~kmp/twiki40/pub/Main/BettySmith/kuvodoj.htm cheap zoloft] [http://dcc.syr.edu/dforum/message.asp?MessageID=49034 online hydrocodone] [http://dcc.syr.edu/dforum/message.asp?MessageID=49022 cheap viagra] [http://wwwx.cs.unc.edu/~kmp/twiki40/pub/Main/BettySmith/niwupu.htm but albuterol] [http://ccfl.unl.edu/twiki/pub/Main/MarthaBell/gedenu.htm cheap rivotril] [http://ccfl.unl.edu/twiki/pub/Main/PaulinePauline/dyzoko.htm free verizon ringtones] [http://www.hollins.edu/ubb/Forum32/HTML/000314.html lorazepam] [http://grid.unimelb.edu.au/twiki/pub/Main/JackLawson/rejyvob.htm viagra online] [http://www.hollins.edu/ubb/Forum32/HTML/000325.html didrex online] [http://ccfl.unl.edu/twiki/pub/Main/SummersFrank/kuzypuh.htm phentermine online] [http://wwwx.cs.unc.edu/~kmp/twiki40/pub/Main/SelmaJeremy/nofelyr.htm cingular ringtones] [http://www.hollins.edu/ubb/Forum32/HTML/000389.html ericsson ringtones] [http://dcc.syr.edu/dforum/message.asp?MessageID=49077 sony ericsson ringtones] [http://devel.linux.duke.edu/bugzilla/attachment.cgi?id=267 free motorola ringtones] [http://wwwx.cs.unc.edu/~kmp/twiki40/pub/Main/JustinJonson/kuluc.htm buy zanaflex] [http://wwwx.cs.unc.edu/~kmp/twiki40/pub/Main/JustinJonson/gekiw.htm flexeril online] [http://www.hollins.edu/ubb/Forum32/HTML/000369.html free samsung ringtones] [http://devel.linux.duke.edu/bugzilla/attachment.cgi?id=259 free nokia ringtones] [http://www.coe.unt.edu/chec/forum/forum_posts.asp?TID=22 diazepam online] [http://www.hollins.edu/ubb/Forum32/HTML/000376.html sonyericsson ringtones] [http://ist.greenville.edu/drupal/files/devowy.html buy lorazepam] [http://ist.greenville.edu/drupal/files/role.html free real ringtones] [http://www.hollins.edu/ubb/Forum32/HTML/000351.html cheap rivotril] [http://www.hollins.edu/ubb/Forum32/HTML/000312.html buy ambien] [http://www.hollins.edu/ubb/Forum32/HTML/000337.html cheap albuterol] [http://dcc.syr.edu/dforum/message.asp?MessageID=49018 cialis online] [http://dcc.syr.edu/dforum/message.asp?MessageID=49035 ambien online] [http://bugzilla.internet2.edu/attachment.cgi?id=746 sagem ringtones] [http://dcc.syr.edu/dforum/message.asp?MessageID=49025 norco online] [http://ist.greenville.edu/drupal/files/puweso.html meridia online] [http://wwwx.cs.unc.edu/~kmp/twiki40/pub/Main/RobertSmith/cibedis.htm nexium online] [http://ccfl.unl.edu/twiki/pub/Main/PaulinePauline/zivy.htm mono ringtones] [http://www.hollins.edu/ubb/Forum32/HTML/000352.html cheap hgh] [http://bugzilla.internet2.edu/attachment.cgi?id=754 cheap ultram] [http://ist.greenville.edu/drupal/files/ruwyze.html order ativan] [http://ccfl.unl.edu/twiki/pub/Main/AlexCarneyham/linefej.htm wellbutrin online] [http://ccfl.unl.edu/twiki/pub/Main/MarthaBell/rofev.htm free free ringtones] [http://ist.greenville.edu/drupal/files/pobiwi.html order diazepam] [http://bugzilla.internet2.edu/attachment.cgi?id=751 free sprint ringtones] [http://www.hollins.edu/ubb/Forum32/HTML/000345.html lortab online] [http://grid.unimelb.edu.au/twiki/pub/Main/JamesMiller/bopogo.htm buy carisoprodol] [http://dcc.syr.edu/dforum/message.asp?MessageID=49071 verizon ringtones] [http://ccfl.unl.edu/twiki/pub/Main/HermanHogg/relu.htm clomid online] [http://ccfl.unl.edu/twiki/pub/Main/AlexCarneyham/sifus.htm xenical online] [http://bugzilla.internet2.edu/attachment.cgi?id=759 cheap xanax] [http://www.hollins.edu/ubb/Forum32/HTML/000360.html free ringtones] [http://www.coe.unt.edu/chec/forum/forum_posts.asp?TID=43 cheap wellbutrin] [http://www.coe.unt.edu/chec/forum/forum_posts.asp?TID=15 buy carisoprodol] [http://cyrusimap.web.cmu.edu/twiki/bin/view/Main/DikVolirev free tracfone ringtones] [http://wwwx.cs.unc.edu/~kmp/twiki40/pub/Main/SherylDiu/popuxo.htm free sharp ringtones] [http://www.hollins.edu/ubb/Forum32/HTML/000291.html ativan online] [http://ist.greenville.edu/drupal/files/covubi.html norco online] [http://ccfl.unl.edu/twiki/pub/Main/PaulinePauline/wetule.htm free sony ericsson ringtones] [http://www.hollins.edu/ubb/Forum32/HTML/000362.html tracfone ringtones] [http://dcc.syr.edu/dforum/message.asp?MessageID=49075 free sonyericsson ringtones] [http://dcc.syr.edu/dforum/message.asp?MessageID=48901 cheap soma] [http://www.hollins.edu/ubb/Forum32/HTML/000293.html order meridia] [http://wwwx.cs.unc.edu/~kmp/twiki40/pub/Main/JustinJonson/gelol.htm zyban online] [http://wwwx.cs.unc.edu/~kmp/twiki40/pub/Main/AshleighRodriquez/rigyse.htm clonazepam] [http://wwwx.cs.unc.edu/~kmp/twiki40/pub/Main/SelmaJeremy/kohe.htm music ringtones] [http://wwwx.cs.unc.edu/~kmp/twiki40/pub/Main/RobertSmith/pybex.htm cheap cyclobenzaprine] [http://wwwx.cs.unc.edu/~kmp/twiki40/pub/Main/AshleighRodriquez/pero.htm ativan online] [http://ccfl.unl.edu/twiki/pub/Main/AlexCarneyham/huvixu.htm paxil online] [http://grid.unimelb.edu.au/twiki/pub/Main/JackLawson/nunuso.htm ativan online] [http://dcc.syr.edu/dforum/message.asp?MessageID=49046 nexium] [http://ccfl.unl.edu/twiki/pub/Main/MarthaBell/cohufyk.htm free mp3 ringtones] [http://ccfl.unl.edu/twiki/pub/Main/MarthaBell/vekorot.htm cheap hgh] [http://wwwx.cs.unc.edu/~kmp/twiki40/pub/Main/RobertSmith/kuky.htm propecia online] [http://devel.linux.duke.edu/bugzilla/attachment.cgi?id=268 samsung ringtones] [http://wwwx.cs.unc.edu/~kmp/twiki40/pub/Main/BettySmith/kyzefe.htm ortho online] [http://ccfl.unl.edu/twiki/pub/Main/MarthaBell/wydyty.htm but zyban] [http://wwwx.cs.unc.edu/~kmp/twiki40/pub/Main/SherylDiu/gefu.htm free punk ringtones] [http://www.hollins.edu/ubb/Forum32/HTML/000340.html order lipitor] [http://wwwx.cs.unc.edu/~kmp/twiki40/pub/Main/SherylDiu/ruviti.htm mtv ringtones] [http://www.hollins.edu/ubb/Forum32/HTML/000346.html vigrx online] [http://www.coe.unt.edu/chec/forum/forum_posts.asp?TID=41 lorazepam online] [http://cyrusimap.web.cmu.edu/twiki/bin/view/Main/RingoFloper fioricet online] [http://wwwx.cs.unc.edu/~kmp/twiki40/pub/Main/RobertSmith/tuju.htm lorazepam online] [http://wwwx.cs.unc.edu/~kmp/twiki40/pub/Main/SherylDiu/sypev.htm cool ringtones] [http://www.coe.unt.edu/chec/forum/forum_posts.asp?TID=30 qwest ringtones] {{task}} |
|||
In this task, the goal is to create an [[associative array]]. |
In this task, the goal is to create an [[associative array]]. |
||
==[[C plus plus|C |
==[[C plus plus|C++]]== |
||
[[Category:C plus plus]] |
[[Category:C plus plus]] |
||
'''Compiler:''' g |
'''Compiler:''' g++ 4.0.2 |
||
#include <map> |
#include <map> |
||
Line 43: | Line 43: | ||
// print out all defined colors |
// print out all defined colors |
||
for (colormap_t::iterator i = colormap.begin(); i != colormap.end(); |
for (colormap_t::iterator i = colormap.begin(); i != colormap.end(); ++i) |
||
std::cerr << "colormap[\"" << i->first << "\"] = 0x" << std::hex << i->second << "\n"; |
std::cerr << "colormap[\"" << i->first << "\"] = 0x" << std::hex << i->second << "\n"; |
||
} |
} |
||
Line 49: | Line 49: | ||
A simpler example which only creates the array and assigns a value. |
A simpler example which only creates the array and assigns a value. |
||
'''Compiler:''' g |
'''Compiler:''' g++ 4.0.2 |
||
#include <map> |
#include <map> |
||
Line 139: | Line 139: | ||
for (Map.Entry<String, Integer> entry: map.entrySet()) |
for (Map.Entry<String, Integer> entry: map.entrySet()) |
||
System.out.println(entry.getKey() |
System.out.println(entry.getKey() + " => " + entry.getValue()); |
||
==[[JavaScript]]== |
==[[JavaScript]]== |
||
Line 151: | Line 151: | ||
for(key in assoc) |
for(key in assoc) |
||
{ |
{ |
||
alert('key:"' |
alert('key:"'+key+'", value:"'+assoc[key]+'"'); |
||
} |
} |
||
Line 329: | Line 329: | ||
var map = Map(1 -> 2, 3 -> 4, 5 -> 6) |
var map = Map(1 -> 2, 3 -> 4, 5 -> 6) |
||
map(3) // 4 |
map(3) // 4 |
||
map = map |
map = map + (44 -> 99) // maps are immutable, so we have to assign the result of adding elements |
||
map.isDefinedAt(33) // false |
map.isDefinedAt(33) // false |
||
map.isDefinedAt(44) // true |
map.isDefinedAt(44) // true |
||
Line 336: | Line 336: | ||
import scala.collection.mutable.HashMap |
import scala.collection.mutable.HashMap |
||
val hash = new HashMap[int, int] |
val hash = new HashMap[int, int] |
||
hash |
hash + (1 -> 2) |
||
hash |
hash + (3 -> 4, 5 -> 6, 44 -> 99) |
||
hash(44) // 99 |
hash(44) // 99 |
||
hash.isDefinedAt(33) // false |
hash.isDefinedAt(33) // false |
||
Line 343: | Line 343: | ||
// iterate over key/value |
// iterate over key/value |
||
hash.foreach {k => Console.println("key " |
hash.foreach {k => Console.println("key "+k._1+" value "+k._2)} // k is a 2 element Tuple |
||
// remove items where the key is <= 3 |
// remove items where the key is <= 3 |
Revision as of 23:02, 29 April 2007
You are encouraged to solve this task according to the task description, using any language you may know.
In this task, the goal is to create an associative array.
C++
Compiler: g++ 4.0.2
#include <map> #include <string> #include <iostream> #include <ostream> int main() { // This is an associative array which maps strings to ints typedef std::map<std::string, int> colormap_t; colormap_t colormap; // First, populate it with some values colormap["red"] = 0xff0000; colormap["green"] = 0x00ff00; colormap["blue"] = 0x0000ff; colormap["my favourite color"] = 0x00ffff; // then, get some values out int color = colormap["green"]; // color gets 0x00ff00 color = colormap["black"]; // accessing unassigned values assigns them to 0 // get some value out without accidentally inserting new ones colormap_t::iterator i = colormap.find("green"); if (i == colormap.end()) { std::cerr << "color not found!\n"; } else { color = i->second; } // Now I changed my mind about my favourite color, so change it colormap["my favourite color"] = 0x337733; // print out all defined colors for (colormap_t::iterator i = colormap.begin(); i != colormap.end(); ++i) std::cerr << "colormap[\"" << i->first << "\"] = 0x" << std::hex << i->second << "\n"; }
A simpler example which only creates the array and assigns a value.
Compiler: g++ 4.0.2
#include <map> #include <string> int main( int argc, char* argv[] ) { std::map< std::string, std::string > hash ; hash[ "key-1" ] = "val1" ; }
C#
Platform: .NET 1.x
System.Collections.HashTable map = new System.Collections.HashTable(); map["key1"] = "foo";
Platform: .NET 2.0
Dictionary<string, string> map = new Dictionary<string,string>(); map[ "key1" ] = "foo";
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
;; default :test is #'eql, which is suitable for numbers only, ;; or for implementation identity for other types! ;; Use #'equalp if you want case-insensitive keying on strings.
(setf my-hash (make-hash-table :test #'equal)) (setf (gethash "H2O" my-hash) "Water") (setf (gethash "HCl" my-hash) "Hydrochloric Acid") (setf (gethash "CO" my-hash) "Carbon Monoxide")
D
int[char[]] hash; hash["foo"] = 42; hash["bar"] = 100; assert("foo" in hash);
Haskell
Interpreter: GHCi
import Data.Map dict = fromList [("key1","val1"), ("key2","val2")]
Java
Defining a Map
Map<String, Integer> map = new HashMap<String, Integer>(); map.put("foo", 5); map.put("bar", 10); map.put("baz", 15);
Retreiving a value
map.get("foo") // => 5 map.get("invalid") // => null
Iterate over keys
for (String key: map.keySet()) System.out.println(key);
Iterate over values
for (int value: map.values()) System.out.println(value);
Iterate over key,values
for (Map.Entry<String, Integer> entry: map.entrySet()) System.out.println(entry.getKey() + " => " + entry.getValue());
JavaScript
In Javascript we make an associative array from an empty object, otherwise if we make it from an array we'll get all the Array object's method and properties when we iterate over it
var assoc = {}; assoc['foo'] = 'bar'; assoc['another-key'] = 3; assoc.thirdKey = 'we can also do this!'; for(key in assoc) { alert('key:"'+key+'", value:"'+assoc[key]+'"'); }
The above associative array can also be constructed using Javascript's object literal syntax
var assoc = { foo:'bar', 'another-key':3, //the key can either be enclosed by quotes or not thirdKey = 'we can also do this!' };
Lua
Lua tables are Hashes
hash = {} hash[ "key-1" ] = "val1" hash[ "key-2" ] = 1 hash[ "key-3" ] = {}
Returns nil on unknown key.
Objective-C
Compiler: gcc
In Objective C, you will use the NSMutableDictionary class to create a hash. To map to an integer, you will also need to make use of the NSNumber class.
NSMutableDictionary *dict = [[NSMutableDictionary alloc] init]; [dict setObject:[NSNumber numberWithInt:2] forKey:@"Two"]; [dict setObject:[NSNumber numberWithInt:7] forKey:@"Seven"]; int two = [[dict objectForKey:@"Two"] intValue]; int seven = [[dict objectForKey:@"Seven"] intValue]; NSLog( @"%d, %d", two, seven );
OCaml
A simple idiom to create a hash table mapping strings to integers:
let hash = Hashtbl.create 0;; List.iter (fun (key, value) -> Hashtbl.add hash key value) ["foo", 5; "bar", 10; "baz", 15];;
To retrieve a value:
let bar = Hashtbl.find hash "bar";; (* bar = 5 *)
To retrieve a value, returning a default if the key is not found:
let quux = try Hashtbl.find hash "quux" with Not_found -> some_value;;
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);
PHP
$array = array(); $array['foo'] = 'bar'; $array['bar'] = 'foo'; echo($array['foo']); // bar echo($array['moo']); // Undefined index
//alternative (inline) way $array2 = array('fruit'=>'apple, 'price'=>12.96, 'colour'=>'green');
Iterate over key/value
foreach($array as $key => $value) { echo('Key: '.$key.' Value: '.$value); }
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
# empty dictionary d = {} d['spam'] = 1 d['eggs'] = 2
# dictionaries with two keys d1 = {'spam': 1, 'eggs': 2} d2 = dict(spam=1, eggs=2)
# dictionaries from tuple list d1 = dict([('spam', 1), ('eggs', 2)]) d2 = dict(zip(['spam', 'eggs'], [1, 2]))
# iterating over keys for key in d: print key, d[key]
# iterating over (key, value) pairs for key, value in d.iteritems(): print key, value
Create a generic mapping function that applys a callback to elements in a list:
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'
Scala
// immutable maps var map = Map(1 -> 2, 3 -> 4, 5 -> 6) map(3) // 4 map = map + (44 -> 99) // maps are immutable, so we have to assign the result of adding elements map.isDefinedAt(33) // false map.isDefinedAt(44) // true
// mutable maps (HashSets) import scala.collection.mutable.HashMap val hash = new HashMap[int, int] hash + (1 -> 2) hash + (3 -> 4, 5 -> 6, 44 -> 99) hash(44) // 99 hash.isDefinedAt(33) // false hash.isDefinedAt(44) // true
// iterate over key/value hash.foreach {k => Console.println("key "+k._1+" value "+k._2)} // k is a 2 element Tuple
// remove items where the key is <= 3 map.filter {k => k._1 > 3} // Map(5 -> 6, 44 -> 99)
Smalltalk
"Tested with Dolphin Smalltalk" states := Dictionary new. states at: 'MI' put: 'Michigan'. states at: 'MN' put: 'Minnesota'.
Tcl
All arrays in Tcl are associative.
# Create one element at a time: set hash(foo) 5
# Create in bulk: array set hash { foo 5 bar 10 baz 15 }
# Access one element: set value $hash(foo)
# Output all values: foreach key [array names hash] { puts $hash($key) }