gpt4 book ai didi

scala - 是否有 Guava MultiSet 和 Table 概念的 Scala 替代品?

转载 作者:行者123 更新时间:2023-12-04 17:56:35 25 4
gpt4 key购买 nike

要在 scala 中使用 guava TableMultiset? scala 中是否已经存在不同的概念,而不是为此用法导入 Guava 库?

最佳答案

你可以使用 Map[(R, C), V]而不是 Table<R, C, V>Map[T, Int]而不是 Multiset<T> .您还可以将辅助方法添加到 Map[T, Int]像这样:

implicit class Multiset[T](val m: Map[T, Int]) extends AnyVal {
def setAdd(e: T, i: Int = 1) = {
val cnt = m.getOrElse(e, 0) + i
if (cnt <= 0) m - e
else m.updated(e, cnt)
}
def setRemove(e: T, i: Int = 1) = setAdd(e, -i)
def count(e: T) = m.getOrElse(e, 0)
}

val m = Map('a -> 5)

m setAdd 'a
// Map('a -> 6)

m setAdd 'b
// Map('a -> 5, 'b -> 1)

m setAdd ('b, 10)
// Map('a -> 5, 'b -> 10)

m setRemove 'a
// Map('a -> 4)

m setRemove ('a, 6)
// Map()

m count 'b
// 0

(m setAdd 'a) count 'a
// 6

关于scala - 是否有 Guava MultiSet 和 Table 概念的 Scala 替代品?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21112276/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com