Bucket是什么意思?


17

我在旧版代码中发现了一个名为BucketService的类。

因为英语不是我的母语,所以我尝试翻译该语言,但这没有任何意义。

我没有找到诸如铲斗排序之类的术语,但我仍然不明白。实际上,这个词在编程中经常使用

对于该单词的一些简单说明,我会有所帮助


1
永远不要以班级的名字来评判班级。它公开了什么API?它包含什么状态?如何使用/调用/实例化?不知不觉中,像您这样的问题的唯一正确答案似乎是Mu
gnat

2
尤其是带有“ BucketService”之类的非描述性名称-听起来像“ UtilityManager”或“ ThingDoer”。像这样模糊的名称,您唯一的选择就是查看代码。不幸的是,名称明确的类通常会做一些事情(如果不幸的话,会做很多事情)。
Tacroy

Answers:


36

英文的水桶是盛水的设备。

在软件中使用时,通常表示将对象分组在一起的数据类型。

在讨论哈希算法时,经常使用该术语,在哈希算法中,具有相同哈希代码(哈希冲突)的不同项目将进入同一“存储桶”。意思是,对象按哈希分组。

通常,哈希函数可以将几个不同的键映射到同一索引。因此,哈希表的每个插槽都与(隐式或显式)一组记录关联,而不是与单个记录关联。因此,哈希表的每个插槽通常称为存储桶,哈希值也称为存储桶索引。

非正式地,我看到了与字典(其值(不是键)是项的集合)一起使用的术语。


维基百科上有一个专门用于计算的术语页面-Bucket(Computing)

在计算中,“桶”一词可以有多种含义。它既用作实时隐喻,又作为某些专业领域中公认的技术术语。存储桶最常见的是一种数据缓冲区或一种将数据分为多个区域的文档类型。


6
+1你击败了我!我想补充一点,哈希算法将元素排序到存储桶中的目的是为了更快地检索和排序大型集合。如果我想搜索20个项目以查找特定项目,那么效率低下的方法就是一次按ID搜索一个项目。更好的方法是使集合将具有相同哈希值的项目保存到存储桶中,因此仅需要在存储桶中搜索少数项目,而不是整个列表。
maple_shaft

@maple_shaft-关于在哈希中使用存储桶的好处。我认为与问题无关:)
Oded

0

也许这是对“位桶”的引用。这就是从一个字节移出的位向左和向右移的位置。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.