В Scala это уже функция класса List:
class Person (val name: String, val surname: String ="Smith")
val li = List (new Person ("David"), new Person ("Joe"), new Person ("Sue"), new Person ("David", "Miller"))
li.groupBy (_.name)
res87: scala.collection.immutable.Map [String, List [Person]] = Map ((David, List (Person @ 1c3f810, Person @ 139ba37)), (Сью, List (Person @ 11471c6)), (Джо, List (Person @ d320e4))))
Поскольку Scala является байт-кодом, совместимым сJava, вы должны иметь возможность вызывать этот метод из Java, если вы включите jar-файлы scala.