> Why a Dictionary? Because he was asking about HashMaps. > As for his question about HashMaps/HashTables, Object is really the > nearest equivialent. I would disagree, considering Dictionary supports Object keys and Object does not.
Ben --- In [email protected], "reflexactions" <[EMAIL PROTECTED]> wrote: > > Why a Dictionary? > > A Dictionary was designed for Object keys not realy String keys. > > A plain old fashioned Object will surely do just fine for him, ie > exactly as he had it in the first place the only thing he was missing > was how to loop over the keys, which would just be: > > for(key:String in map)map[key] > > As for his question about HashMaps/HashTables, Object is really the > nearest equivialent. > > Dictionary should be used where you keys are themselves Objects, like > a Dictionary with data rows as keys and the value being a component > > > > > > > --- In [email protected], "ben.clinkinbeard" > <ben.clinkinbeard@> wrote: > > > > Hi Simon, > > > > Dictionary will work for you. Strings are passed by value, so it > > doesn't matter if you have the same key var or not. Run this code to > > see an example. > > > > var d:Dictionary = new Dictionary(); > > var s1:String = "foo"; > > var s2:String = "foo"; > > d[s1] = "bar"; > > trace(d[s2]); > > > > As for what to use as the iterator, that depends on what your > > collection is holding. If you don't know, or it holds more than one > > type of object, Object or * would be the type of your iterator. If > you > > know you have a collection of Dog instances, use a Dog iterator. > > > > HTH, > > Ben > > > > > > --- In [email protected], "simonjpalmer" <simonjpalmer@> > > wrote: > > > > > > thanks, sorry to be dim, but what exactly do I put as the > iterator in > > > these loops? > > > > > > for each (<what> in map) > > > > > > Can I use... > > > > > > var o:Object; > > > for each (o in map)? > > > > > > Incidentally I don't think a Dictionary works in my particular > > > instance because it uses the strict equality === operator which > means > > > that I can only retrieve items if I have the exact same object > that I > > > used as the key. > > > > > > In my case I am using a String UID value as the key so I can look > up > > > objects from the map from lots of different places. I can > guarantee > > > that I will *not* have the same instance of the key object when I > look > > > up the right hand side of the map, instead I have a String which > > > contains the same characters as the original key. > > > > > > So == will work, but === will not, which unfortunately makes the > > > Dictionary object useless for my purposes. > > > > > > Simon > > > > > > --- In [email protected], "ben.clinkinbeard" > > > <ben.clinkinbeard@> wrote: > > > > > > > > for...in and for...each will both work on Object but what you're > > > > really looking for is Dictionary. Dictionary supports those > loops as > > > well. > > > > > > > > HTH, > > > > Ben > > > > > > > > > > > > > > > > --- In [email protected], "simonjpalmer" > <simonjpalmer@> > > > > wrote: > > > > > > > > > > In the absence of a formal Map I am using an object as a > key/value > > > > > pair map as follows: > > > > > > > > > > var map:Object = new Object(); > > > > > map["A"] = some_object_A; > > > > > map["B"] = some_object_B; > > > > > map["C"] = some_object_C; > > > > > > > > > > and then looking up by the key > > > > > > > > > > var object_A:Object = map["A"]; > > > > > > > > > > etc. > > > > > > > > > > This works really well for random lookup by the key, but what > I also > > > > > need is a way to iterate through the objects I have put on > the map > > > > > object. > > > > > > > > > > Is there a for each(* in map) construct I can use? > > > > > > > > > > Does anyone know if there are any plans to support HashMaps in > > AS3 or > > > > > flash? Is there anything synonymous to a HashMap already > that I am > > > > > clearly not aware of? > > > > > > > > > > Thanks > > > > > Simon > > > > > > > > > > > > > > >

