Scala:在具有不同结构的列表中查找差异
Scala: find diffs in lists with different structure
我需要在 不同 结构的两个列表中找到差异和匹配元素,例如 myBooks
和 top5books
,其中第一个数字是一本书两个列表中的 ID:
case class Book(id: Int, score: Int)
val myBooks = Array(
Book(117, 10),
Book(34, 5),
Book(85, 7),
Book(55, 8),
Book(21, 3)
)
val top5Books = Array(117,356,55,85,11)
结果应该在两个列表中:
val matched = Array(
Book(117, 10),
Book(85, 7),
Book(55, 8)
)
val missed = Array(
Book(34, 5),
Book(21, 3)
)
此处不能使用 diff
,因为输入数组具有不同的结构。执行此操作的漂亮、干净的代码是什么?
您可以使用分区方式:
val (matched, missed) = myBooks.partition(book => top5Books.contains(book.id))
我需要在 不同 结构的两个列表中找到差异和匹配元素,例如 myBooks
和 top5books
,其中第一个数字是一本书两个列表中的 ID:
case class Book(id: Int, score: Int)
val myBooks = Array(
Book(117, 10),
Book(34, 5),
Book(85, 7),
Book(55, 8),
Book(21, 3)
)
val top5Books = Array(117,356,55,85,11)
结果应该在两个列表中:
val matched = Array(
Book(117, 10),
Book(85, 7),
Book(55, 8)
)
val missed = Array(
Book(34, 5),
Book(21, 3)
)
此处不能使用 diff
,因为输入数组具有不同的结构。执行此操作的漂亮、干净的代码是什么?
您可以使用分区方式:
val (matched, missed) = myBooks.partition(book => top5Books.contains(book.id))