【发布时间】:2010-06-29 12:57:35
【问题描述】:
我想知道 Scala 中 BitSet 的内存使用情况。例如,如果我这样做:
var bitArray:BitSet=new BitSet(10)
bitArray.add(0)
bitArray.add(2)
bitArray.add(4)
bitArray.add(6)
bitArray.add(8)
与包含偶数 0,2,4,6,8 的数组相比如何?
用二进制写一个数字怎么样:
var bitArray:BitSet=new BitSet(32)
bitArray.add(5)
bitArray.add(3)
bitArray.add(2)
bitArray.add(1)
bitArray.add(0)
这与数字 47 相比如何?
我在这里询问内存使用情况。但作为一个更开放的问题,如果您知道,BitSet 的优点/缺点或用途是什么(WR 到其他常见数据类型)。
谢谢,
【问题讨论】:
-
也许你应该给我们一个关于你试图解决的问题的更高级的陈述,而不是关于非常低级的数据结构属性的三个变体问题。
-
感谢 Thomas,这篇文章让我对 BitSet 有了更多的了解。我仍然想知道是否可以通过用 BitSet 表示其他结构来获得空间。我想如果有人能阐明 BitSet 是如何实现的,一切都会更清楚。谢谢,
-
Thomas:这里的上下文是 Scala,它提供了自己的
BitSet,尽管Array[Boolean]与Java 中的Boolean[]相同。密切相关,但不完全相同。 -
@Daniel 很有趣。如果它支持压缩位集......但是两个实现都有相同的想法,您可以阅读 Java 或 Scala lib 代码,它是相同的。
标签: memory scala performance bitset bitsets