== Auszug aus Steven Schveighoffer (schvei...@yahoo.com)'s Artikel > On Thu, 03 Feb 2011 09:35:44 -0500, Nrgyzer <nrgy...@gmail.com> wrote: > > == Auszug aus bearophile (bearophileh...@lycos.com)'s Artikel > >> Nrgyzer: > >> > Is there any chance to cast/convert this array to an indexed > > array or > >> > is it possible to iterate over specific indices? I know that > > there is > >> > something like next() for the foreach-statement but when the array > >> > contains some thousand instances and I only want iterate over (for > >> > example) 5 elements I think that's the wrong way. > >> Show a hypothetical code example of what you desire to do, please. > >> Bye, > >> bearophile > > > > Example: > > > > ... > > class Example(T : Drawable) : Drawable { > > > > T[hash_t] pObjectsToDraw; > > > > uint pFrom, pTo; > > > > void setLimit(from, to) { > > pFrom = from; > > pTo = to; > > } > > > > void remove(T objToRemove) { > > pObjectsToDraw.remove(objToRemove.toHash()); > > } > > > > override void draw() { > > for (uint i = pFrom; i < pTo; i++) { > > pOjectsToDraw[i].draw(); // cannot call > > because pObjectsToDraw is an associative and no static or dynamic > > array > > } > > } > > > > } > First, hashes are not stored in any particular order, so I'm not sure what > you expect to accomplish except "give me (pTo - pFrom) random elements > from the array" > Second, you can use a foreach loop to get data out of an AA, and then > break when you've retrieved enough elements. > Again, I'm not sure what the point is of starting in the middle of the > array. Are you expecting something different from a hashtable? > -Steve
I know that hashes aren't stored in any order... but lets take the LinkedHashSet in Java. The LinkedHashSet/Map stores the hashes in order of inserting. With the toArray()-method I can loop over specific elements/indices... but I can also remove the elements by their hash. I'm looking for a similar technique in D - you can find an Java example on http://www.java2s.com/Code/JavaAPI/java.util/ LinkedHashSettoArray.htm.