I'm writing some custom Comparators, and I'd like them to push null items to the bottom of the list, regardless of whether I'm sorting ascending or descending. What's a good strategy or pattern for approaching this?
Offhand:
- simply write separate ascending and descending comparators, sharing code where possible;
- delegate null handling to another class, either by throwing an NPE or by calling it explicitly;
- include an ascending flag and put conditional logic in it to navigate around the nulls.
- Wrap regular comparators in a null-handling class
Any others? I'd like to hear about any experiences with different approaches, any pitfalls for the various strategies.