当前位置: 首页 > news >正文

上海网站建设上海网站制作上海浦东建设管理有限公司网站

上海网站建设上海网站制作,上海浦东建设管理有限公司网站,百度网站推广方案,wordpress建立的博客谷歌guava当Guava项目发布版本11.0时#xff0c;新添加的功能之一是BloomFilter类。 BloomFilter是唯一的数据结构#xff0c;用于指示元素是否包含在集合中。 使BloomFilter有趣的是#xff0c;它将指示元素是否绝对不包含或可能包含在集合中。 永远不会出现假阴性的特性使… 谷歌guava 当Guava项目发布版本11.0时新添加的功能之一是BloomFilter类。 BloomFilter是唯一的数据结构用于指示元素是否包含在集合中。 使BloomFilter有趣的是它将指示元素是否绝对不包含或可能包含在集合中。 永远不会出现假阴性的特性使BloomFilter成为用作警戒条件的绝佳候选者以帮助防止执行不必要和昂贵的操作。 虽然BloomFilters最近获得了很好的曝光但使用它意味着滚动自己的浏览器或通过Google搜索代码。 滚动自己的BloomFilter的麻烦在于获取正确的哈希函数来制作过滤器 有效。 考虑到Guava使用Murmur Hash来实现我们现在就拥有了一个有效的BloomFilter的有用性而该库只是一个库。 BloomFilter速成课程 BloomFilters本质上是位向量。 在较高级别BloomFilters以下列方式工作 将元素添加到过滤器。 将其哈希几次然后将索引与哈希结果匹配的位设置为1。 测试元素是否在集合中时请遵循相同的哈希过程并检查这些位是否设置为1或0。此过程是BloomFilter如何保证元素不存在的方法。 如果未设置这些位则根本不可能将该元素放入集合中。 但是肯定答案表示元素在集合中或发生哈希冲突。 可以在此处找到有关BloomFilter的更详细的描述并在此处找到有关BloomFilters的良好教程。 根据Wikipedia的说法Google在BigTable中使用BloomFilters来避免对不存在的项目进行磁盘查找。 另一个有趣的用法是使用BloomFilter优化SQL查询 。 使用番石榴BloomFilter 通过调用BloomFilter类上的static方法create来创建Guava BloomFilter 传递一个Funnel对象和一个int表示预期的插入次数。 漏斗也是Guava 11中的新功能它是一个可以将数据发送到Sink的对象。 以下示例是默认实现并且误报的百分比为3。 Guava提供了一个Funnels类其中包含两个静态方法这些方法提供Funnel接口的实现用于将CharSequence或字节数组插入到过滤器中。 //Creating the BloomFilter BloomFilter bloomFilter BloomFilter.create(Funnels.byteArrayFunnel(), 1000);//Putting elements into the filter //A BigInteger representing a key of some sort bloomFilter.put(bigInteger.toByteArray());//Testing for element in set boolean mayBeContained bloomFilter.mayContain(bitIntegerII.toByteArray()); 更新基于路易斯·沃瑟曼的评论以下是如何使用自定义Funnel实现为BigIntegers创建BloomFilter的方法 //Create the custom filter class BigIntegerFunnel implements FunnelBigInteger {Overridepublic void funnel(BigInteger from, Sink into) {into.putBytes(from.toByteArray());}}//Creating the BloomFilter BloomFilter bloomFilter BloomFilter.create(new BigIntegerFunnel(), 1000);//Putting elements into the filter //A BigInteger representing a key of some sort bloomFilter.put(bigInteger);//Testing for element in set boolean mayBeContained bloomFilter.mayContain(bitIntegerII);注意事项 正确估计预期插入的数量至关重要。 当插入过滤器的次数接近或超过预期的数目时BloomFilter开始填满结果将产生更多的误报直至无用之地。 还有另一个版本的BloomFilter.create方法该方法带有一个附加参数双精度表示所需的错误命中概率级别必须大于0且小于1。 错误命中概率的级别会影响用于存储或搜索元素的哈希数。 所需的百分比越低执行的哈希数越高。 结论 BloomFilter是开发人员可以在其工具箱中使用的有用项。 现在Guava项目使在需要时开始使用BloomFilter变得非常简单。 希望您喜欢这篇文章。 欢迎提出有用的意见和建议。 参考资料 Guava BloomFilter的单元测试演示 。 BloomFilter类 您想知道的所有关于BloomFilters的信息 。 BloomFilter教程 。 Wikipedia上的BloomFilter 。 参考来自我们的JCG合作伙伴 Bill Bejeck的Google Guava BloomFIlter来自“ 随机思考编码”博客。 翻译自: https://www.javacodegeeks.com/2012/12/google-guava-bloomfilter.html谷歌guava
http://www.pierceye.com/news/505671/

相关文章:

  • 电子商务网站建设需要青岛网站建设邓巴迪
  • 网站建设考虑的因素建设网站地图
  • 天津塘沽网站建设新网官方网站
  • 做本地团购网站国外产品网站
  • 湖北省两学一做网站国外浏览器app下载
  • 遵义网站建设公司巴彦淖尔市网站制作
  • 后台管理系统网站模板合作网站登录制作
  • 腾讯云网站备案流程seo优化实训总结
  • 那个网站有免费的模板wordpress首页模板文件
  • 阿里云主机可以放几个网站手机上自己设计广告的软件
  • 南通公司企业网站建设淘宝网店制作
  • 长沙网站建设推广太仓网站建设企业网站
  • 加强网站微信信息编辑队伍建设网站设计 北京店
  • 广州网站建设有限公司程序员入门先学什么
  • 资源下载类网站如何做外链北京有几家宽带网络公司
  • 个人网站要有什么网页设计与制作初学者教程
  • 宁波品牌网站建设芗城区建设局网站
  • 仿卢松松博客网站源码购买网站空间多少钱
  • 无锡网站推微信公众号文章里好看的图片在哪个网站做
  • 做网站建设费用预算龙岩市建筑设计院
  • 网站做适配多少钱浙江建设厅特种考试查询
  • 简单的网站更新 关键词优化 关键词互联如何做网
  • 重庆网站seo搜索引擎优化网站qq登录 开发
  • 备案号放网站下面居中物流网站制作目的
  • 房产网站排名做情侣网站
  • 营销型网站建设推荐国内团购网站做的最好的是
  • 前端网站建设苏州高新区建设局网站管网
  • 中小企业网站建设中服务器的解决方案是网站建设推广总结
  • 东莞网站建设新闻资讯做赌场网站犯法么
  • wordpress怎么添加单页模版seo价格是多少