I'm looking for an efficient way to implement a concurrent tree structure. If that helps, assume that I have a lot more read accesses than changes to the structure.

The tree should support these operations:

  • Adding and removing nodes
  • Sort branches every time a new node is inserted
  • Iterate over all the nodes (without ConcurrentModificationException)
  • Look up an element by path
Edit
Report