TreeSet
A MutableSortedSet implementation backed by a Red/Black Tree, with each map entry being represented as a node. Search, insertion, and removal all run in O(log n) time thanks to the properties of the tree.
Removing map entries while iterating is not allowed, and using MutableIterator.remove will throw an exception.