JavaのHashTable
は、同期化されたハッシュテーブルです(かなり長い間存在します)。HashMap
は非同期です。Javaのハッシュマップ:keys()は実際にはありませんか?
Keys:
キー
パブリック列挙キー() このハッシュテーブルにあるキーのリストを返しますHashTable
では、ハッシュテーブルのキーを取得するための2つの方法があります。
と
公衆セットのkeySet()
この Hashtableに格納されているキーのSetビューを返します。 SetはHashtableによってサポートされているため、 ハッシュテーブルへの変更はSetに反映され、その逆もあります。 Setは要素の削除ではなく、 の要素の削除をサポートします(対応するエントリを ハッシュテーブルから削除します)。
後者では、キーがハッシュテーブルへの直接参照であることが明示的に述べられています(変更などに注意してください)。
しかし、keys()
のような言及はありません。
だから私の質問は次のとおりです。
列挙子を使用してkeys()
が(実際のキーを返すkeyset()
とは違って)、キーのコピーを返却していますか?
もしそうなら、HashMap
にそのような方法がないのですが、keyset()
だけが提供されますか?非同期のコレクションの一般的なイテレータに
それで、実装が同じですか?それでは、Enumeratorというオファーが付いたAPIは利用できますか? – Cratylus
HashtableとEnumerator APIはこの時点で廃止予定です。新しいコードでは使用しないでください。 –