Regarding losing order with Sets and Maps: You mentioned LinkedHashSet/Map, which is good. It preserves insertion order. It might also be worth...
Separate names with a comma.