Java で Flyweight を作成していますが、大きすぎるマップを作成しないようにしたいと考えています。マップを削除するより効率的な方法はありますか? これを自動的に実行できるプロパティ (最大サイズ コンストラクターなど) が見当たらなかったので、コードで実行しています。
これが私が持っているもので、かなり基本的なものですが、より良い方法がないことを確認したいと思います:
private static void prune() {
Iterator<Entry<Integer, Integer[]>> iterator = seeds.entrySet().iterator();
int removed = 0;
while(iterator.hasNext()|| removed == pruneLength) {
iterator.next();
iterator.remove();
removed++;
}
}