То, как вы делаете это нормально, но когда списки становятся больше, вы можете захотеть сделать это:
Вы можете сделать процесс более эффективным, превратив свой список ссылок (list2
) в наборfirst.
val referenceIds = list2.distinctBy { it.id }.toSet()
list1.filter { it.id !in referenceIds }
Фон:
ArrayList
, который вы, скорее всего, используете, имеет временную сложность O (n), когда вы проверяете, является ли элементсодержится.Таким образом, если список станет больше, это займет больше времени.
A HashSet
, с другой стороны, имеет временную сложность O (1) при проверке, содержится ли элемент.Итак, если list2
станет больше, оно не станет медленнее.