Orhan Tozan
06/17/2022, 1:00 PMminus()
won't do it, since list2 - list1
only shows what list2
has what list1
hasn't.Klitos Kyriacou
06/17/2022, 1:22 PMephemient
06/17/2022, 2:38 PMfun <T> diffCounts(a: Iterable<T>, b: Iterable<T>): Map<T, Int> = buildMap {
for (elem in a) put(elem, getOrElse(elem) { 0 } + 1)
for (elem in b) put(elem, getOrElse(elem) { 0 } - 1)
values.removeAll(setOf(0))
}
nkiesel
06/17/2022, 7:36 PMephemient
06/17/2022, 7:38 PMlistOf(1, 2, 3) - listOf(2, 3, 4) == listOf(1)
diffCounts(listOf(1, 2, 3), listOf(2, 3, 4)) == mapOf(1 to 1, 4 to -1)
listOf(2, 3, 4).zip(listOf(1, 2, 3)) { first, second -> first - second } == listOf(1, 1, 1)
nkiesel
06/17/2022, 7:56 PMephemient
06/17/2022, 7:57 PMlist2 - list1
and list1 - list2
together were useful for OP, I think it was clear which interpretation they meantnkiesel
06/17/2022, 8:04 PM