Интерфейс Map
объявляет clear()
как необязательную операцию. Тем не менее, ваш тег говорит, что вы используете LinkedHashMap
, а Javadocs говорят, что карта должна быть пустой, когда вызов возвращается. Можете ли вы предоставить пример кода, демонстрирующий, что вы все еще можете извлечь элемент по некоторому ключу даже после вызова clear()
?
РЕДАКТИРОВАТЬ # 1: Мне приходит в голову, что вы можете иметь в виду, что сами объекты не сразу собираются в мусор после удаления сопоставлений из вашего Map
; это меня совсем не удивит. Очистка записей на карте не означает, что сами объекты должны быть собраны мусором или завершены сразу после завершения этого метода. Не могли бы вы уточнить, что вы ожидаете, пожалуйста?
РЕДАКТИРОВАТЬ # 2 Я написал следующий контрольный пример:
public static void main(String args[]) {
Map<String, Object> map = new LinkedHashMap<>();
map.put("one", 1);
map.put("two", 2);
map.put("three", 3);
System.out.println(map);
map.clear();
System.out.println(map);
}
И заметил следующий вывод:
{one=1, two=2, three=3}
{}
Не могли бы вы предоставить пример кода, который демонстрирует, что именно вы делаете, и отличается от этого?