Sounds like a job for a custom Comparator.