7

この特定のケースについて誰も質問していないことに少し驚いています。これは、Java標準ライブラリの奇妙な矛盾のようなものです。

カスタムラベル付きのswingJSlidersを使用しています。ラベルを割り当てるために使用できる唯一のライブラリ呼び出しは次のとおりです。setLabelTable(Dictionary labels)

しかし、Dictionaryは抽象クラスであり、標準ライブラリで唯一知られているサブクラスはHashtableです。これは、「廃止された」ため、APIとさまざまなIDEが不満を言っています。

当然のことは、ハッシュテーブルを使用することですが、私は2つのことを疑問に思っています。

  1. これにアプローチするためのより良い方法はありますか?
  2. Hashtableがこの(私の意見では)かなり重要なライブラリ呼び出しに使用できる唯一のクラスである場合、それはどのような基準で「廃止」されていますか?

ありがとう!

4

3 に答える 3

4

java.util.HashMapに置き換えられたため、廃止されました。主な違いは、HashTableのメソッドが同期され、HashMapではnullポインターをキーとして使用できることです。

最新バージョンのJavaは、競合のない同期操作のパフォーマンスにおいて長い道のりを歩んできました。そのため、以前のようなパフォーマンスの懸念は実際にはありません。(主要なプラットフォームで最新のJDKを実行している場合。)APIにHashTableが必要な場合は、先に進んでそれを使用してください。

于 2012-07-17T20:54:21.923 に答える
2

Hashtableが廃止された理由は、Hashmapに置き換えられたためです

ただし、setLabelTableにラベルを割り当てるためには、Hashtableの「欠陥」は問題ではありません。

于 2012-07-17T20:53:05.260 に答える
0

DictionaryMapとによって「置換」さHashTableれましたHashMap
AHashTableは同期されているため遅いのでHashMap、通常の選択です。
を使用する必要がある場合JSliderHashMap.
おそらく、代わりにどのウィジェットを使用するか迷っているはずです。ちょっとした考え...

于 2012-07-17T21:04:50.020 に答える