As long as the dict is concretely typed, it should be pretty good. (I can't comment about string keys, but you probably could! I think Symbols are more performant than strings for indexing.)
Also, small correction: I should have used get! instead of get. You want to set that new value in the Dict. --Tim On Monday, May 18, 2015 05:37:00 PM Scott Jones wrote: > How well do Dict’s perform currently in Julia? I hope pretty well! Thanks, > that’s more what I needed… > > -Scott > > > On May 18, 2015, at 5:34 PM, Tim Holy <tim.h...@gmail.com> wrote: > > > > If you really want to get the index back, perhaps better might be a dict: > > > > counter = 0 > > d = Dict{KeyType,Int}() > > for item in list > > > > idx = get(d, item, counter+1) > > if idx > counter > > > > counter += 1 > > > > end > > # Do whatever you plan to do with idx > > > > end > > > > --Tim > > > > On Monday, May 18, 2015 02:24:25 PM Scott Jones wrote: > >> I suppose I could use a set simply to determine if it was present or not, > >> and then push! to another array if not present... just didn't seem as > >> efficient as what I'm used to... > >> > >> On Monday, May 18, 2015 at 4:53:02 PM UTC-4, Jameson wrote: > >>> use a Set? > >>> http://docs.julialang.org/en/latest/stdlib/collections/?highlight=set > >>> > >>> On Mon, May 18, 2015 at 4:46 PM Scott Jones <scott.pa...@gmail.com > >>> > >>> <javascript:>> wrote: > >>>> I would like to be able to do the following in Julia: > >>>> Take a UInt64 (or UInt128, for that matter), and add it to an array, if > >>>> it is not already present, returning the index. > >>>> (This would be trivial in the language I used to work on, and I think > >>>> it > >>>> probably is in Julia as well, but I haven't found the right data > >>>> structure > >>>> yet...) > >>>> What would be the best performing way of handling that? > >>>> What if, instead of an UInt64 or UInt128, I had an array of bytes (like > >>>> 128 or 256)? What would be the best way for that? > >>>> > >>>> Thanks, Scott