Получить необычные элементы из двух списков - KOTLIN

У меня есть два списка одного и того же модельного класса (СТУДЕНТ), пример структуры объекта ученика приведен ниже,

{
    "_id": "5a66d78690429a1d897a91ed",
        "division": "G",
        "standard": "X",
        "section": "Secondary",
        "lastName": "Sawant",
        "middleName": "Sandeep",
        "firstName": "Shraddha",
        "pin": 12345,
        "isEditable": true,
        "isTracked": false
}

В одном списке 3 объекта, а в другом 2. допустим, в списке А 1, 2. , 3 студента и список B имеет 1, 2

Итак, у меня вопрос, есть ли какие-нибудь встроенные функции для получения необычного элемента путем сравнения только id ? Если нет, то как я могу решить эту проблему.

К вашему сведению, вот два подхода, которые я сделал для решения, но с треском провалился.

Подход 1.

internal fun getDistinctStudents(studentsList: List<Students>, prefStudents: List<Students>): List<Students> {
    val consolidated = prefStudents.filter {
        prefStudents.any { students: Students -> it._id == students._id }
    }
    return prefStudents.minus(consolidated)
}

Подход 2.

internal fun getDistinctStudents(studentsList: List<Students>, prefStudents: List<Students>): List<Students> {
    val consolidatedStudents = studentsList + prefStudents
    val distinctStudents = consolidatedStudents.distinctBy{ it._id }
    return prefStudents.minus(distinctStudents)
}

Любая помощь будет принята с благодарностью.

Спасибо

8
задан Sanoop 29 January 2018 в 10:40
поделиться