私は、ポイントの(x、y)座標を格納するためにdouble
値のスタックを使用する、パフォーマンスクリティカルなメソッドをJavaで作成しています。現時点ではStack<Double>
を使用していますが、オートボックスのコストが原因でパフォーマンスに問題が生じることがあります。座標は通常呼び出し間で変化します。そのため、Double
ラッパーをキャッシュすることは役に立ちません。効率的なスタックの代替<Double>
したがって、私は仮想クラスを探していますが、DoubleStack
と呼びましょう。振る舞いとインターフェイスはStack<T>
に似ていますが、プリミティブでのみ動作します。そのような振る舞いを持つクラスがありますか、それとももっと良いのですが、リスト、スタック、キューなどの一般的なコンテナの代替案を格納するプライマリからなるライブラリですか?
スタックはアルゴリズムの適切なデータ構造ですか?その場合は、スタックがパフォーマンスのボトルネックであるという堅い証拠がなくなるまで、可能なパフォーマンスの問題を無視してください。パフォーマンスに問題がある場合は、コードをプロファイリングして、プロファイラが遅いと言う領域に投資する必要があります。あなたが今やっていることは[未熟な最適化](https://en.wikipedia.org/wiki/Program_optimization#When_to_optimize)です。 –
スタックが実際にパフォーマンスのボトルネックになっている場合は、 'double []'に基づいて独自のデータ構造を簡単に実装できると思います。必要なコード量はそれほど多くはありません。特に、 'Stack'のすべてのインターフェースを実装する必要がない場合は、Jimの推奨に従うことをお勧めします。 –
Aaron
"java primitive collection"を検索するには、あなたの検索エンジンを使用してください。これを行う図書館があります。 –