Tree data structure in Java



I am hoping to use a tree data structure in my Java application. I need to
be able to create a tree which I can add next nodes to certain paths and
obtain a list of all possible paths in the tree. Is there an implementation
of this built into Java? For example, I would like to create a structure
similar to this:

A1
/ \
M1 C3
/ | \ / \
D S E R Ts
/\
4 6

Basically each node is labelled with a String, I dont want the data being
sorted. And I want to iterate through all paths to get a list like:

A1, M1, D
A1, M1, S
A1, M1, E
A1, C3, R, 4
A1, C3, R, 6
A1, C3, TS

If there is an existing implementation, is there any docs on how to use it?

Many Thanks
Allan


.