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