私のコードにHashMultiMapを使用しています。今、私のコードは定期的にいくつかのビットを取得しています。私は文字列に格納します(例:String str = "0110011100")。そしてそれをintに変換し、それを私のHashMultiMapキー/値として保存します。 int/stringとして格納する代わりに、ビットとして格納することは可能ですか?その方法は地図のスペースを節約しますか?実際には、文字列はバイトより多く、intより小さい(例えば14ビット)。だから、私はビットとして格納することでスペースを節約したい。ありがとう。ハッシュマルチマップスペース節約問題
3
A
答えて
5
Javaは便利なBitSet
クラスを持ち、実質的に無制限のビット数を格納できます。ビット数が大きい場合、この表現は意味をなさない。しかし、ビット数が比較的少ない場合、この表現は整数より多くの空間を使用することになる。
ビット数が32に制限されている場合、BitSet
を使用すると無駄になります。 20ビットだけでは、2^20
の配列を潜在的に作成でき、キーの格納を完全に避けることができます。しかし、これは時期尚早の最適化とみなされます。
この問題にアプローチするより良い方法は、アプリケーション設計を論理的に適合させるという最も便利な表現から始めてください。アプリケーションが動作しているときに、メモリ使用量をプロファイルして、ビットセットの表現を最適化する必要があるかどうかを判断します。あなたがそれについて何かする必要はありません。少なくとも、すぐにはそうはなりません。
関連する問題
- 1. EMACS節約問題
- 2. サンキーダイアフラムmatplotlib節約問題
- 3. エンティティフレームワークコードの最初の多対多節約問題
- 4. where節のHql問題
- 5. 制約問題
- 6. Momentjs節約月先
- 7. 音節と正規表現の問題
- 8. Spinner Androidのif節の問題
- 9. 問題はPHPのIf節で
- 10. Datastaxカッサンドラの節約セキュリティkubernetes
- 11. Bash/Shell:時間の節約
- 12. FoxPro予約語の問題?
- 13. iosグラフ制約の問題
- 14. RGLPK制約の問題
- 15. Netezzaの集約問題(ピボット)
- 16. SQL制約の問題
- 17. YARN予約メモリの問題
- 18. UIButton制約の問題
- 19. クイック予約の問題
- 20. LAG集約の問題
- 21. 2集の集約問題
- 22. ボトムレイアウト制約の問題
- 23. NodeJS/MySQL /約束の問題
- 24. MongoDB集約パイプラインの問題
- 25. ノードJS約束の問題
- 26. イメージをサムネイルサイズにスケーリングしてイメージビューで読み込んでメモリを節約する問題
- 27. XMLファイルの間違った節約C#
- 28. numpy binned mean、余分な軸を節約
- 29. スキーマとテーブル(Postgres)のクエリー制約節
- 30. java.lang.OutOfMemoryError:Javaのヒープスペース - メモリの節約方法
保存しようとしているビットのうち、最も高いビット数は何ですか?私は、値が 'int'に収まるので、常に32未満であると仮定しますが、それは16より小さいでしょうか? – dasblinkenlight
@dasblinkenlight、まさに。常に32ビット未満で固定(元々は20ビット)されます。 – Arpssss
メモリの記憶を気にしているならば、 'HashMultimap'はあなたの懸念事項の中で一番小さいものです。まず' String'を使うと、それを避けることができれば、すべてが単独で失敗モードになります。 –