2012-05-01 11 views
3

Javaのjava.util.Hashtableの機能はjava.util.HashMapと同じです。彼らの主な違いは、Hashtableはスレッドセーフで同期され、HashMapは同期していないという点です。 JDK5以降では、マルチスレッドコンテキストで使用できるConcurrentHashMapがあります。それはHashtableよりも優れたパフォーマンスを示します。今後Hashtableを使用する理由はありますか?ConcurrentHashMapがあるので、Hashtableが必要ですか?

答えて

5

逆互換性は、HashtableがまだJDKに残っている唯一の理由です。

Hashtableの別の代替案は、Collections.synchronziedMapです。

+0

ConcurrentHashMapのパフォーマンスがsynchronizedMapよりも優れているため、synchronizedMapを使用する理由はありますか? – Jacky

+1

@Jackyいいえ、同じ理由が当てはまります。以前はそこにあったので、そこにとどまります - Sun/oracleは後方互換性をかなり深刻に持ち、基本的にはJDKから何も削除しません(JDK7のメソッドはまだ間違っています1.0、1.1に改名) – Voo

+0

ありがとうございました! – Jacky

0

use HashTableという既存のインターフェイスがいくつかあります。ほとんどの場合、すべてではないが、互換性を失うことなくこれらを置き換えることはできません。

関連する問題