While I know there’s a few ways to do this, I’m most interested in finding the most idiomatic and functional Scala method.
Given the following trite example:
case class User(id: String)
val users = List(User("1"), User("2"), User("3"), User("4"))
What’s the best way to create an immutable lookup Map of user.id -> User so that I can perform quick lookups by user.id.
In Java I’d probably use Google-Collection’s Maps.uniqueIndex although its unique property I care less about.
You can keep the users in a List and use list.find:
or if you want to use a Map, map the list of users to a list of 2-tuples, then use the toMap method:
which will return an immutable Map[String, User], then you can use
or