Возможный дубликат:
Где найти стандартную реализацию карты на основе Trie в Java?
Я хочу использовать Trie в Java, есть ли реализация, которую я могу использовать? (Пытался найти, но не нашел).
Возможный дубликат:
Где найти стандартную реализацию карты на основе Trie в Java?
Я хочу использовать Trie в Java, есть ли реализация, которую я могу использовать? (Пытался найти, но не нашел).
В основных библиотеках Java нет структуры данных trie.
Это может быть связано с тем, что попытки обычно предназначены для хранения строк символов, в то время как структуры данных Java являются более общими и обычно содержат любые Object
(определяющие равенство и хеш-операцию), хотя иногда они ограничены Comparable
объектами (определяющими порядок). Общей абстракции для «последовательности символов» не существует, хотя CharSequence
подходит для символьных строк, и я полагаю, что вы могли бы что-то сделать с Iterable
для других типов символов.
Вот еще один момент, который следует учитывать: при попытке реализовать обычное дерево в Java вы быстро сталкиваетесь с тем фактом, что Java поддерживает Unicode. Чтобы иметь какую-либо эффективность использования пространства, вы должны ограничить строки в своем дереве некоторым подмножеством символов или отказаться от традиционного подхода хранения дочерних узлов в массиве, индексированном по символу. Это может быть еще одной причиной, по которой попытки не считаются достаточно универсальными для включения в основную библиотеку, и на что следует обратить внимание, если вы реализуете свою собственную или используете стороннюю библиотеку.