Я создаю Flyweight на Java, и я хочу убедиться, что я не создаю слишком большую карту. Есть ли более эффективный способ обрезания карты? Я не видел никаких свойств, которые могли бы сделать это автоматически (например, конструктор максимального размера), поэтому я делаю это в коде.Эффективный способ обрезания HashMap
Вот что у меня есть, его довольно простой, но я хочу, чтобы убедиться, что это не лучший способ:
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++;
}
}
Вы имеете в виду, что пытаетесь избежать карты с широким распространением ключей или? – 2010-12-06 16:33:03
Почему бы не использовать `iterator.remove()`? Это отражается на карте. – 2010-12-06 16:34:28
Я хочу ограничить этот рост карт с течением времени. Я не должен часто использовать этот предел ... – Nix 2010-12-06 16:38:06