2

したがって、パフォーマンスのために HashMap の代わりに SparseArray を使用することになっています。

ただし、JCFSparseArrayの一部ではなく、実装も実装もされていません。一方、JCF互換の動作が必要な場合に使用できる実装と提供を提供します。たとえば、さまざまなカスタム ソート (値) で使用します。CollectionListMapHashMapMapvalues()ArrayAdapter

私の質問は 3 つあります。

  1. JCFインターフェースをSparseArray実装しないのはなぜですか? つまり、ほとんどのメソッドが既に存在するという事実に照らして、これらのインターフェイスを実装しない理由は何ですか?
  2. JCFSparseArrayインターフェースを実装したり、簡単に変換してパフォーマンスを維持したりする代替手段はありますか?SparseArray
  3. HashMap数百の要素を持つ s は本当にそれほど遅いのでしょうか? ユーザーは本当に気付くのでしょうか?

私は詳細な回答を探しており、信頼できるサイトへの参照を好む. が JCF インターフェースで実装されなかった理由を知っていると思われる場合はSparseArray、サポートを示してください。理解を助けてください。を使用する必要があると思われる場合は、それを使用してカスタムソートSparseArrayを使用する方法を示してください( Comparator風のソリューションが推奨されます)。より良い代替手段がある場合は、API ドキュメント、ライブラリ、またはチュートリアルへのリンクが役立ちます。s に固執する必要があると思われる場合は、インターフェイスのニーズが s のパフォーマンス上の利点を上回っている理由を説明してください。ArrayAdapterHashMapSparseArray

4

2 に答える 2

3

SparseArray.java の最初のバージョンは 2006 年 5 月に作成されました。ある意味では、参照しているさまざまなコレクション インターフェイスよりも古いバージョンです (Java ではなく Android 内で)。私の感覚では、さまざまな JCF インターフェースがサポートされていないのは、コードが作成された時点では存在せず、それ以降、それらを追加する理由を誰も見つけていないためです。(2007 年初頭までジェネリックは使用されませんでした。)

強化された SparseArray が役立つと思われる場合は、高品質のパッチをいつでも歓迎します。

于 2013-04-23T17:12:26.210 に答える
1

Map < Object, Object > なのかもしれませんが、SparseArray にはプリミティブ キーがあります。

代替は以前のようにマップです

3 については、一般的にはい。

于 2013-04-19T18:22:38.007 に答える