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 other strategies? I'd like to hear about any experiences with different approaches, and any pitfalls for the various strategies.