Suffix Tree dependency
A Radix Tree, specifically a Generalized Suffix Tree would be a good candidate for implementing CurrencyList.
Unfortunately Java SE 11 doesn't seem to include any kind of trie so we'd need to either implement it ourselves (out of scope for this project and kind of pointless given the plethora of existing implementations) or add an external dependency to the project.
Concurrent Trees looks rather promising:
- Actively maintained
- Clean API
- Excellent documentation
- Full test coverage
- Available on Maven Central
- No external dependencies (apart from JUnit 4)
- Permissive license (Apache License 2.0)