2016-06-15 25 views
-1

JavaでMapsを使用する場合のメリットはありますか?Javaでメモリ使用率の面でマップを使用した場合の短所

HashMapsまたは他のコレクションのクラスを使用しているかどうかについては、私の知る限りです。

たとえば、

Map<String , String> map = new HashMap<String, String>(); 

map.put("id",1); 
map.put("name","test123"); 

だから私は、それらのそれぞれのために2つのビットを使用したと仮定しよう。 私によると、Mapや他のコレクションは100ビットを保持し、残りの98ビットは無駄になります。 その場合、何か他のものを使用できますか? 初期容量負荷率の説明については

+0

**バイト**を意味しますか? – SpringLearner

答えて

0

まず、地図を作成するには、ごく少量のデータに対していくらかのメモリオーバーヘッドがあります。指定された負荷容量/負荷率に対して、Entryラッパークラスを使用して配列を作成します。だから、あなたは数バイトを無駄にしているかもしれませんが、ギガバイトのサイズのメモリの時代には、実際にアプリケーションに与えたメモリの量と、何百万または何十億というマップを作成するかによって、他に管理しなければならないこと。

私が知っているのは、収集が本当に小さくても、私はキーを使用していないと知っているのですが、時にはリストを使用することがあります。結局のところ、利用可能なメモリの大部分を占めるまで、こうした小さな事柄について心配することさえしないでください。

1

、あなたは配列を使用した場合、あなたはおそらくあなたがマップを使用する場合よりも少ないメモリを使用しますWhat is the significance of load factor in HashMap?

を参照してください。しかし、ほとんどの場合、使いやすさと読みやすさはメモリ使用量よりはるかに重要です。

のメモリ使用の説明については、Hash Map Memory Overheadも参照してください。

関連する問題