С ArrayList Я хотел бы сделать что-то вродеКак заменить определенный элемент в LinkedHashSet?
myList.set(myList.indexOf(oldItemNumber), newItemNumber);
Есть простой способ добиться этого для LinkedHashSet?
С ArrayList Я хотел бы сделать что-то вродеКак заменить определенный элемент в LinkedHashSet?
myList.set(myList.indexOf(oldItemNumber), newItemNumber);
Есть простой способ добиться этого для LinkedHashSet?
Вопрос не имеет смысла для набора. Новый объект, добавленный к набору, либо равен существующей (в этом случае ничего не происходит), либо нет (в этом случае он добавляется в конце).
Невозможно вставить объекты в определенных местах, не удаляя и не добавляя все.
Возможно, вы захотите посмотреть TreeSet
, который позволит вам сохранить упорядоченный набор, который будет оставлен по заказу компаратора при добавлении и удалении объектов.
Я думаю, что TreeSet будет лучшим выбором, чем. Благодаря! – GedankenNebel
Просто используйте метод put()
. Он обновит эту конкретную запись.
Извините, я имел в виду LinkedHashSet вместо LinkedHashMap =/ – GedankenNebel
@GedankenNebel Тогда применяется та же логика. Используйте метод add(). – Juvanis
Метод add() просто добавляет элемент в мой набор. Я хочу заменить определенный элемент int LinkedHashSet. – GedankenNebel
использование map.put(key ,value)
если вы будете использовать тот же ключ он заменит предыдущее значение
Извините, я имею в виду LinkedHashSet вместо LinkedHashMap =/ – GedankenNebel
@GedankenNebel 'Set' dont позволяет дублировать значение и не упорядочивается, а также не индексируется, поэтому мы не можем заменить его на индекс – Deepak
Хм, я вижу. Благодаря! – GedankenNebel
Из документации LinkedHashMap:
хэш-таблицу и связанную реализацию списка интерфейса Map, с предсказуемого порядка итерации. Эта реализация отличается от HashMap тем, что она поддерживает список с двойной связью, проходящий через все его записи . Этот связанный список определяет порядок итераций, который равен , как правило, порядок, в котором ключи были вставлены в карту (вставка-заказ). Обратите внимание, что порядок вставки не изменяется, если ключ снова вставлен в карту. (Ключ к повторной установки на карте м, если m.put (к, v) вызывается при m.containsKey (к) возвращает истинное непосредственно перед вызовом.)
Таким образом, вы можете просто put() новое значение, и оно будет сохранять текущее местоположение в заказе. Если вы хотите добавить его в конец, удалите старое значение и добавьте новое.
Извините, я имею в виду LinkedHashSet вместо LinkedHashMap =/ – GedankenNebel
Связанный: [Упорядоченная вставка в связанномHashSet, любой способ выполнения?] (Http://stackoverflow.com/q/12826916) –