KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
This question is probably quite dumb, but I can't find an example and can't figure it out. I want to compare two Person classes by last, first, and middle name, in that order. Here's the brain-dead way to do it: def compare(that: Person): Int = { val last: Int = lastName.compare(that.lastName) if (last != 0) last else { val first: Int = firstName.compare(that.firstName) if (first != 0) first else middleName.compare(that.middleName) } I know there's some much more clever way to do this (probably using Ordering ) but I can't put my finger on it. Todd I figured out this once I realized how to access the right things in Ordering. def compare(that: Person): Int = { Ordering.Tuple3(Ordering.String, Ordering.String, Ordering.String).compare( (lastName, firstName, middleName), (that.lastName, that.firstName, that.middleName)) } I'm pretty sure I can get away with fewer explicits, but this works and is reasonably compact.
Tags (comma-separated)
Save Edits
Cancel