Допустим, класс элементов вашей коллекции равен NozzleState
.
Вы хотите сгруппировать состояния сопел по идентификатору сдвига, создать идентификатор пользователя и идентификатор сопла.
Если я правильно понимаю, вам нужна отдельная группа для каждой отдельной комбинации идентификатора смены, создания идентификатора пользователя и идентификатора сопла.
Таким образом, вам нужно создать класс, представляющий такую комбинацию (назовем if Key
) и сгруппируем элементы по их Key
:
data class Key(val shiftId: String, val createUserId: String, val nozzleId: String)
fun NozzleState.toKey() = Key(shift.id, createUser.id, nozzle.id)
nozzleStateList.groupBy { it.toKey() }