Java частично заказал коллекцию <E>

Я ищу реализацию Java структуры данных, которая содержит коллекцию элементов, для которыхpartial ordering определяется, и который позволяет перебирать эти элементы в некоторыхtopological order (любой из возможных порядков в порядке; предпочтительно стабильный порядок при изменении содержимого коллекции).

В идеале было бы реализоватьCollection<E>, Set<E>, или жеSortedSet<E> интерфейс и поддержка всех методов интерфейса. С точки зрения определения общего порядка, коллекция может быть создана с помощьюComparator<E>и компаратор может выдать исключение (ClassCastException?) если два сравниваемых элемента не упорядочены относительно друг друга. В качестве бонуса было бы выброшено исключение, если вставляемый элемент вызовет аномалию упорядочения (цикл в упорядоченном графе элементов).

Так что да, я хочу топологический вид, но я бы хотелcollection object that maintains that sort order с каждой вставкой / удалением, аналогично тому, как SortedSet поддерживает коллекцию в отсортированном порядке.

Существует ли что-то подобное? В какой-нибудь библиотеке с открытым исходным кодом?

References:

http://en.wikipedia.org/wiki/Partially_ordered_set

http://en.wikipedia.org/wiki/Topological_sorting

Update

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

Если бы производительность не была очень важной (она есть), и если число элементов было ограничено чем-то разумным (это не так), я думаю, я бы принял подход, предложенный Вилли, хотя, возможно, с моей собственной реализацией графа и топологией реализация сортировки, чтобы минимизировать зависимости.

Ответы на вопрос(1)

Ваш ответ на вопрос