Есть ли Trie в Java?

Возможный дубликат:
Где найти стандартную реализацию карты на основе Trie в Java?

Я хочу использовать Trie в Java, есть ли реализация, которую я могу использовать? (Пытался найти, но не нашел).


person Belgi    schedule 02.11.2011    source источник
comment
Найдено на superliminal.com superliminal.com/sources/TrieMap.java.html   -  person John Giotta    schedule 02.11.2011


Ответы (1)


В основных библиотеках Java нет структуры данных trie.

Это может быть связано с тем, что попытки обычно предназначены для хранения строк символов, в то время как структуры данных Java являются более общими и обычно содержат любые Object (определяющие равенство и хеш-операцию), хотя иногда они ограничены Comparable объектами (определяющими порядок). Общей абстракции для «последовательности символов» не существует, хотя CharSequence подходит для символьных строк, и я полагаю, что вы могли бы что-то сделать с Iterable для других типов символов.

Вот еще один момент, который следует учитывать: при попытке реализовать обычное дерево в Java вы быстро сталкиваетесь с тем фактом, что Java поддерживает Unicode. Чтобы иметь какую-либо эффективность использования пространства, вы должны ограничить строки в своем дереве некоторым подмножеством символов или отказаться от традиционного подхода хранения дочерних узлов в массиве, индексированном по символу. Это может быть еще одной причиной, по которой попытки не считаются достаточно универсальными для включения в основную библиотеку, и на что следует обратить внимание, если вы реализуете свою собственную или используете стороннюю библиотеку.

person erickson    schedule 02.11.2011