The docs are a bit confusing. entrySet() returns a Set containing all
of the mappings between keys and values. I think the method that you
want is values() which returns a Collection of all of the values that
you have put into the Hashtable. You can then create an Iterator for
the returned Collection.
Kevin
Dimitris Vyzovitis wrote:
>
> I think that there is something wrong with the iterators of
> Hashtables.
>
> Perhaps it is my misconception, but shouldn't I get an iterator that
> returns the objects present in a map when I request an iterator over
> its entry set?
>
> To be more specific, assume the following example (in jpython for the
> sake of convenience):
> >>> import java
> >>> ht = java.util.Hashtable()
> >>> ht.put( 'a', 'b' )
> >>> it = ht.entrySet().iterator()
> >>> n = it.next()
> >>> n
> a=b
> >>> n.getClass()
> <jclass java.util.Hashtable$Entry at -289078028>
>
> However, keySet().iterator() returns an iterator that allows me to
> access the real key-Objects!!!
>
> As it is obvious, the iterator returns objects that belong to a class
> that is not editable.
> Shouldn't it return the objects that I have put it?
> That is, reading the specs in the documentation, I expect to receive
> functionality similar to the functionality of an Enumeration over the
> Hashtable elements (plus some thread-safety for my iteration, which is
> the only real reason to use an Iterator and not an Enumeration).
>
> Is this a bug or my misconception?
> If this isn't really a bug, I think then the documentation is totally
> screwed up and we receive a totally useless Iterator object!!!
>
> Thanx in advance.
>
> -- dimitris [mailto:[EMAIL PROTECTED]]
>
>
----------------------------------------------------------------------
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]