Существует ли тип списка в java, который хранит объекты в порядке возрастания и не добавляет, если этот объект ранее добавлен. Я знаю, что Java-карты могут это делать, но мне интересно, есть ли тип списка, который делает то, что я хочу. В противном случае я должен переопределять содержит, equalsTo и добавлять методы, правильно?
Java: список, содержащий уникальные элементы в порядке
Ответ 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 может быть именно тем, что вам нужно.
Сохраняет элементы в отсортированном дереве. Таким образом, вы можете перебирать их в отсортированном порядке. Это не список, но он лучше работает с добавлением и содержит.
Ответ 6
Это не список, но вы можете посмотреть на реализации Set http://download.oracle.com/javase/6/docs/api/java/util/Set.html
Ответ 7
Использовать java.util.LinkedHashSet с переопределенным hashCode() и equals (Object obj) с использованием уникального свойства (ов)
Ответ 8
SortedSet - это субинтерфейс Set, который гарантирует, что элементы в наборе отсортированы.
SortedSet<Integer> orderedSet = new TreeSet<Integer>();
Используйте их, когда вам нужно хранить не дублирующие элементы в порядке возрастания значений элементов