import java.util.*; public class HashMapCapacityTest { private static long lastmem = 0; public static void main(String[] args) { // 初期容量と負荷係数を変化させると、メモリの減り方が変化します。 // Sunの実装だと、初期容量は2のn乗じゃないと駄目みたいでした。 HashMap map = new HashMap(16, 1.0f); for (int i = 0; i < 300; i++) { map.put("item" + i, "a"); printFreemem(i); } } private static void printFreemem(int i) { long mem = Runtime.getRuntime().freeMemory(); System.out.println(i + ": " + (mem - lastmem)); lastmem = mem; } }