- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
size()
是否有用例? java.util.BitSet
上的方法类(class)?
我的意思是 - JavaDoc 明确表示它依赖于实现,它返回内部 long[]
的大小位存储。从它所说的,可以得出结论,您将无法设置索引高于 size()
的位。 ,但事实并非如此,BitSet
可以自动增长:
BitSet myBitSet = new BitSet();
System.out.println(myBitSet.size()); // prints "64"
myBitSet.set(768);
System.out.println(myBitSet.size()); // prints "832"
在与 BitSet
的每一次相遇中生活中有过,一直想用 length()
因为那个返回 BitSet
的逻辑大小:
BitSet myBitSet = new BitSet();
System.out.println(myBitSet.length()); // prints "0"
myBitSet.set(768);
System.out.println(myBitSet.length()); // prints "769"
尽管过去 6 年我一直在编写 Java,但这两种方法总是让我非常困惑。我经常把它们混在一起,顺便用错一个,因为在我的脑海里,我想到了BitSet
。作为一个聪明人 Set<boolean>
我会在哪里使用 size()
.
这就像 ArrayList
有length()
返回元素的数量和 size()
返回底层数组的大小。
现在,size()
是否有任何用例?我缺少的方法?它有什么用吗?有没有人用过它?对某些手动位操作或类似操作可能很重要?
编辑(经过更多研究)
我意识到 BitSet
是在 Java 1.0 中引入的,而包含我们使用的大部分类的 Collections 框架是在 Java 1.2 中引入的。所以基本上在我看来size()
由于遗留原因而保留,并且没有实际用途。新的 Collection 类没有这样的方法,而一些旧的类(例如 Vector
)有。
最佳答案
I realized BitSet was introduced in Java 1.0 while the Collections framework with most of the classes we use was introduced in Java 1.2.
正确。
So basically it seems to me that size() is kept because of legacy reasons and there's no real use for it.
是的,差不多。
另一种“大小”方法是 length()
,它为您提供设置位的最大索引。从逻辑的角度来看,length()
比 size()
更有用……但是 length()
是在 Java 1.2 才引入的。
我能想到的唯一(假设的)用例 size()
可能比 length()
更好的地方是:
在这种情况下,size()
可以说比 length()
更好,因为它的调用成本更低。 (查看源代码...)但那是非常边缘的。
(我想,另一个类似的用例是当您创建一个新的 BitSet
并根据现有 的
。同样,差异很小。)size()
对其进行预分配时>BitSet
但是关于兼容性,你是对的。很明显,他们无法在不产生兼容性问题的情况下摆脱 size()
或更改其语义。所以他们大概决定不管它了。 (事实上 ,他们甚至没有看到弃用它的必要性。在 API 中使用不是特别有用的方法的“危害”是最小的。)
关于java - BitSet的size()方法是什么原因?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16881563/
ValueError Traceback (most recent call last) in 23 out
在 CSS 中,我从来没有真正理解为什么会发生这种情况,但每当我为某物分配 margin-top:50% 时,该元素就会被推到页面底部,几乎完全消失这一页。我假设 50% 时,该元素将位于页面的中间位
我正在尝试在 pyTorch 中训练我的第一个神经网络(我不是程序员,只是一个困惑的化学家)。 网络本身应该采用 1064 个元素向量并用 float 对它们进行评级。 到目前为止,我遇到了各种各样的
我有一个简单的问题。如何在 3 个维度上移动线性阵列?这似乎太有效了,但在 X 和 Y 轴上我遇到了索引问题。我想这样做的原因很简单。我想创建一个带有 block 缓冲区的体积地形,所以我只需要在视口
我正在尝试运行我购买的一本关于 Pytorch 强化学习的书中的代码。 代码应该按照本书工作,但对我来说,模型没有收敛,奖励仍然为负。它还会收到以下用户警告: /home/user/.local/li
我目前正在使用 this repo使用我自己的数据集执行 NLP 并了解有关 CNN 的更多信息,但我一直遇到有关形状不匹配的错误: ValueError: Target size (torch.Si
UIScrollView 以编程方式设置,请不要使用 .xib 文件发布答案。 我的 UIScrollView 位于我的模型类中,所以我希望代码能够轻松导入到另一个项目中,例如。适用于 iPad 或旋
我在我的 Ruby on Rails 应用程序(版本 4.3.1)中使用 Bootstrap gem。我最近发现了响应式字体大小功能 (rfs)。根据 Bootstrap 文档,它刚刚在 4.3 版中
这个问题不太可能帮助任何 future 的访客;它仅与一个小地理区域、一个特定时刻或一个非常狭窄的情况相关,而这些情况通常不适用于互联网的全局受众。如需帮助使这个问题更广泛地适用,visit the
size 之间的语义区别是什么?和 sizeIs ?例如, List(1,2,3).sizeIs > 1 // true List(1,2,3).size > 1 // true Luis 在 c
我想从 div 中删除一些元素属性。我的 div 是自动生成的。我想遍历每个 div 和子 div,并想删除所有 font-size (font-size: Xpx)和 size里面font tag
super ,对 Python 和一般编程 super 新手。我有一个问题应该很简单。我正在使用一本使用 Python 3.1 版的 python 初学者编程书。 我目前正在写书中的一个程序,我正在学
我无法从 NativeBase 更改缩略图的默认大小。我可以显示默认圆圈,即小圆圈和大圆圈,但我想显示比默认大小更大的圆圈。这是我的缩略图代码: Prop 大小不起作用,缩略图仍然很小。 我的 Na
我是pytorch的新手。在玩张量时,我观察到了两种类型的张量- tensor(58) tensor([57.3895]) 我打印了它们的形状,输出分别是 - torch.Size([]) torch
这是我的 docker images 命令的输出: $ docker images REPOSITORY TAG IMAGE ID CREATED
来自 PriorityQueue 的代码: private E removeAt(int i) { assert i >= 0 && i < size; modCount++;
首先,在我的系统上保留以下内容:sizeof(char) == 1 和 sizeof(char*) == 4。很简单,当我们计算下面类的总大小时: class SampleClass { char c
我正在编写一个游戏来查找 2 个图像之间的差异。我创建了 CCSprite 的子类 Spot。首先我尝试创建小图像并根据其位置添加自身,但后来我发现位置很难确定,因为很难避免 1 或 2 个像素的偏移
我有一个 Tumblr Site每个帖子的宽度由标签决定。 如果一篇文章被标记为 #width200,CSS 类 .width200 被分配。 问题是,虽然帖子的宽度不同,但它们都使用主题运算符加载相
这个问题在这里已经有了答案: What is the ideal growth rate for a dynamically allocated array? (12 个答案) 关闭 8 年前。 我
我是一名优秀的程序员,十分优秀!