The Binary Search Tree is a data structure that store "items" (such as numbers, names etc.) in memory. 

The Trie is an ordered tree data structure used usually to store strings, in which case each node defines an association with a letter of the alphabet. Unlike a binary search tree, no node in the tree stores the key associated with that node; instead, its position in the tree defines the key with which it is associated.

It is based on TreeMap, the main different is that TreeSet is an implementation of Set interface and TreeMap on Map interface.

This kind of collection sorts your entries just when they are inserted. No need to call sort().