Я попыталсяКак добавить значение и ключ в TreeMap по заданному индексу
int index = new ArrayList<String>(treemap.values()).indexOf("something");
Но я не получаю, как заменить значение и ключ.
Любая помощь будет отличной.
Я попыталсяКак добавить значение и ключ в TreeMap по заданному индексу
int index = new ArrayList<String>(treemap.values()).indexOf("something");
Но я не получаю, как заменить значение и ключ.
Любая помощь будет отличной.
Вы не можете, TreeMap - это отсортированный тип карты ключей. Ключи сортируются по алгоритму Red-Black tree. Таким образом, ключи сортируются в порядке сортировки.
Если вас интересует порядок, в котором были добавлены ваши элементы, используйте LinkedHashMap.
Anwer Ваш вопрос являются: запись
Ps: обновление ключа и значение означает удаление старого ключа, не изменяя его.
спецификация Карта:
Почему нам нужно сначала удалить ключ? почему я не могу установить его снова на том же ключе. Он перезапишет предыдущий. Не так ли? – Braj
Является ли LinkedHashmap короткой картой? –
@ user4274413 LinkedHashMap поддерживает ** порядок вставки **, но все же вы не можете получить его через индекс. – Braj
TreeMaps
не работает так же. Это не индексированная коллекция (в отличие от Lists
), поэтому то, что вы пытаетесь сделать, просто не сработает.
Необходимо удалить старый ключ, если ключ изменен, и вставить новую пару ключ-значение.
Не эффективно осуществимым:
for (Map.Entry<String, String> entry : treemap.entrySet()) {
if (entry.getValue().equals("something")) {
entry.setValue("entirely different");
//treemap.remove(entry.getKey());
break;
}
}
Могу ли я использовать 'treemap.remove' во время итерации? – Braj
Если вы немедленно разобьетесь, пропустите итерации. –
TreeMap сортируется по умолчанию по ключевым словам. Для строки String в порядке возрастания символов или Integer в порядке возрастания номеров – Braj