У меня есть TreeMultimap<Integer, String>
, который также включает в себя дубликаты ключей.java: получить количество значений в пределах заданного диапазона ключей Guava Multimap
Я хочу, чтобы получить количества значений, которая находится в пределах определенного диапазона ключ , что тоже с O (LogN) временной сложностью.
Я попробовал сначала превращение TreeMultimap
к SortedMap
, используя свой метод asMap()
, а затем создать в требуемом диапазоне в submap
и извлечении его размера.
SortedMap<Integer, Collection<String>> sortedMap = mapList.getTmm().asMap();
return sortedMap.subMap(beg,end).size();
ли это имеет сложность O (LogN)?
Кроме того, у меня возникла проблема. Когда значение TreeMultimap
преобразуется в SortedMap
, значения являются объектами класса Collection
. то есть пара ключ-значение, имеющая дубликаты ключей в TreeMultimap
, включена в один класс Collection
. Таким образом, метод size()
возвращает неправильное значение.
Есть ли другой способ добиться этого? Любая помощь приветствуется.
«Имеет ли он сложность O (logN)?» Не имеет значения, поскольку он не возвращает правильный ответ: это не количество значений, а количество ключей. –
Да. Есть ли другой путь? @AndyTurner –