Javaのjava.util.Hashtable
の機能はjava.util.HashMap
と同じです。彼らの主な違いは、Hashtable
はスレッドセーフで同期され、HashMap
は同期していないという点です。 JDK5以降では、マルチスレッドコンテキストで使用できるConcurrentHashMap
があります。それはHashtable
よりも優れたパフォーマンスを示します。今後Hashtable
を使用する理由はありますか?ConcurrentHashMapがあるので、Hashtableが必要ですか?
3
A
答えて
5
逆互換性は、Hashtable
がまだJDKに残っている唯一の理由です。
Hashtable
の別の代替案は、Collections.synchronziedMap
です。
0
use HashTableという既存のインターフェイスがいくつかあります。ほとんどの場合、すべてではないが、互換性を失うことなくこれらを置き換えることはできません。
関連する問題
- 1. 静的ConcurrentHashmapで外部同期が必要です
- 2. 私は、カスタムのHashtableがjava.lang.Hashtable拡張作成する必要があり
- 3. HashtableのすべてをConcurrentHashmapに置き換えても安全ですか?
- 4. File.expand_path(...、__FILE__)がベストプラクティスである必要がありますか?
- 5. ConcurrentHashMapがスレッドセーフであることをどのようにテストできますか?
- 6. 私のIBackingStoreはスレッドセーフである必要がありますか?
- 7. アンドロイドデベロッパーが知る必要があることは何ですか?
- 8. @Entityがある場合、なぜ "annotatedClasses"が必要ですか?
- 9. PRNGはスレッドセーフである必要がありますか?
- 10. 移動コンストラクタはnoexceptである必要がありますか?
- 11. Struct.Error、Bytesオブジェクトである必要がありますか?
- 12. メインアクティビティ名は.MainActivityである必要がありますか?
- 13. OpenGLである必要がありますか?
- 14. MongoCollection.forEachはスレッドセーフである必要がありますか?
- 15. バックボーンモデルIDは数値である必要がありますか?
- 16. インストールする必要があるJavaのバージョンは何ですか?
- 17. ファイアウォールで開く必要があるjbossポートは何ですか?
- 18. Salesforce REST APIのコールバックURLがHTTPSである必要がありますか?
- 19. なぜNettyには独自のConcurrentHashMapがありますか?
- 20. LDTが必要ですか?
- 21. バッチファイルが必要ですか?
- 22. ダブルフラッシュが必要ですか?
- 23. runtime_error ";"が必要ですか?
- 24. virtualenvが必要ですか?
- 25. ブレンドが必要ですか?
- 26. session.clear()が必要ですか?
- 27. ライセンスが必要ですか?
- 28. Androidを学ぶ必要があるのはどれですか?
- 29. VSTO(Outlook)では、MSG添付ファイルをolEmbeddeditemタイプにする必要がありますが、olByValueが必要です。
- 30. エラー:データベースの所有者である必要があります
ConcurrentHashMapのパフォーマンスがsynchronizedMapよりも優れているため、synchronizedMapを使用する理由はありますか? – Jacky
@Jackyいいえ、同じ理由が当てはまります。以前はそこにあったので、そこにとどまります - Sun/oracleは後方互換性をかなり深刻に持ち、基本的にはJDKから何も削除しません(JDK7のメソッドはまだ間違っています1.0、1.1に改名) – Voo
ありがとうございました! – Jacky