141
Профилирование MyHashMap
containsValue является линейным, поскольку должен искать
все подкарты. И нет особо эффективного способа найти значе-
ние и соответствующий ключ (или, возможно, ключи).
И еще одно ограничение: отдельные методы, которые были ме-
тодами постоянного времени в MyLinearMap, стали линейными.
Например:
public void clear() {
for (int i=0; i<maps.size(); i++) {
maps.get(i).clear();
}
}
Метод clear должен очистить все подкарты, а их количество
пропорционально n, в связи с чем этот метод линейный. К сча-
стью, данная операция используется не слишком часто, так
что для большинства приложений описанный компромисс до-
пустим.
Профилирование MyHashMap
Прежде чем продолжить, нужно проверить, действительно ли
MyHashMap.put выполняется за ...