Подтвердить что ты не робот

Java: список, содержащий уникальные элементы в порядке

Существует ли тип списка в java, который хранит объекты в порядке возрастания и не добавляет, если этот объект ранее добавлен. Я знаю, что Java-карты могут это делать, но мне интересно, есть ли тип списка, который делает то, что я хочу. В противном случае я должен переопределять содержит, equalsTo и добавлять методы, правильно?

4b9b3361

Ответ 1

Итак, вам нужен список, содержащий только уникальные элементы? Два варианта:

  • java.util.LinkedHashSet - сохраняет порядок вставки, имеет установленную семантику
  • из коллекций коллекций SetUniquieList - позволяет выполнять операции с списком, такие как get(..) и set(..)
  • из коллекций коллекций ListOrderedSet

Ответ 2

Зависит от того, какой порядок вы имеете в виду.

  • Порядок сортировки - используйте TreeSet
  • Порядок вставки - используйте LinkedHashSet

Ответ 3

TreeSet сделает трюк. Пример:

SortedSet<Integer> myOrderedUniqueList = new TreeSet<Integer>()

Ответ 4

Я думаю, что вы после SortedSet (это интерфейс, который расширяет Set). Набор подобен списку, но содержит только одно из значений.

TreeSet является широко используемой реализацией SortedSet

http://download.oracle.com/javase/6/docs/api/java/util/TreeSet.html

Ответ 5

TreeSet может быть именно тем, что вам нужно.

Сохраняет элементы в отсортированном дереве. Таким образом, вы можете перебирать их в отсортированном порядке. Это не список, но он лучше работает с добавлением и содержит.

Ответ 7

Использовать java.util.LinkedHashSet с переопределенным hashCode() и equals (Object obj) с использованием уникального свойства (ов)

Ответ 8

SortedSet - это субинтерфейс Set, который гарантирует, что элементы в наборе отсортированы.

SortedSet<Integer> orderedSet = new TreeSet<Integer>();

Используйте их, когда вам нужно хранить не дублирующие элементы в порядке возрастания значений элементов