Я знаю, что многие из этих тем существуют, но я совсем не понимаю эту тему c. И точное объяснение того, что происходит для новичка, необходимо.
У меня есть список людей:
val person1 = Person("A", 8, 24,"darts")
val person2 = Person("A", 8, 24,"football")
val person3 = Person("A", 2, 24,"basketball")
val person4 = Person("B", 8, 24,"skiing")
val person5 = Person("B", 1, 24,"snowboard")
где
data class Person (val street: String, val number: Int, val age: Int, val hobby: String){
override fun toString(): String {
return "$street $number $age $hobby"
}
}
А теперь подведем итоги вверх. Если я использую groupBy, результатом будет Map с ключом и значениями. Я прав? Где ключи - это атрибуты, по которым я группирую, например:
var grouping = list.groupBy { it.street }
результат:
{A=[A 8 24 darts, A 8 24 football, A 2 24 basketball], B=[B 8 24 skiing, B 1 24 snowboard]}
А теперь я бы нравится группировать по нескольким полям, таким как улица и номер. Как это сделать? И более того, я хотел бы указать СПИСОК (я должен сделать какую-то проекцию из этой карты?) Хобби, которые люди имеют по адресам и номерам. Например, под адресом A номер 8 у меня есть список (дартс, футбол).
@ Edit. Нужно ли как-то делить этот список на 2-й класс объектов?