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

广州微信网站开发游戏企业用什么程序做网站

广州微信网站开发,游戏企业用什么程序做网站,湖南建设厅网站,专业团队怎么形容#x1f3f7;️个人主页#xff1a;牵着猫散步的鼠鼠 #x1f3f7;️系列专栏#xff1a;Java全栈-专栏 #x1f3f7;️个人学习笔记#xff0c;若有缺误#xff0c;欢迎评论区指正 目录 前言 什么是BitMap#xff1f;有什么用#xff1f; 基本概念 位图的优势 … ️个人主页牵着猫散步的鼠鼠  ️系列专栏Java全栈-专栏 ️个人学习笔记若有缺误欢迎评论区指正 目录 前言 什么是BitMap有什么用 基本概念 位图的优势 位图的劣势 BitMap和Int的区别 使用场景 BitMap在Java中的使用 1.前言 有许多方法可以用来去重比如使用列表、集合等等但这些方法通常只适用于一般情况。然而当涉及到大量数据去重时常见的 Java Set、List甚至是 Java 8 的新特性 Stream 流等方式就显得不太合适了。在处理大量数据的需求场景下我们不得不提及 BitMap。 2.什么是BitMap有什么用 2.1.基本概念 位图BitMap基本思想就是用一个bit来标记元素bit是计算机中最小的单位也就是我们常说的计算机中的0和1这种就是用一个位来表示的。 所谓位图其实就是一个bit数组即每一个位置都是一个bit其中的取值可以是0或者1 像上面的这个位图可以用来表示146 如果不用位图的话我们想要记录14,6 这三个整型的话就需要用三个unsigned int已知每个unsigned int占4个字节那么就是3_4 12个字节一个字节有8 bit那么就是 12_8 96 个bit。 所以位图最大的好处就是节省空间。 位图有很多种用途特别适合用在去重、排序等场景中著名的布隆过滤器就是基于位图实现的。 2.2.位图的优势 空间效率优势极大的节省了存储空间对于大量稀疏数据特别是当元素数量远大于实际存在的项时相比较于使用传统的列表、集合等数据结构位图的空间占用极小。查询速度由于内存访问时按字节或字进行的。因此对单个元素的存在性检查时间复杂度为O(1)即常量时间非常快速。批量操作高效对于批量插入、删除和查询操作尤其是统计范围内元素的数量位图表现出优秀的性能。 2.3.位图的劣势 但是位图也有着一定的限制那就是他只能表示0和1无法存储其他的数字。所以他只适合这种能表示true or false的场景。 3.BitMap和Int的区别 以Java中的int为例来对比观察BitMap的优势再Java中int类型通常需要32位而BitMap使用1位就可以来标识此元素是否存在所以可以认为BitMap占用的空间大小只有int类型的1/32所以有大量数据判重时使用BitMap也可以实现。 了解了什么是BitMap那么我们就可以使用BitMap来解决大量数据去重的问题 4.使用场景 假设我们有40亿个无符号整数数据并且都是10位的话如果直接使用内存来存储大约需要14.9GB 的空间。 每个无符号整数通常占用4个字节32位因此40亿个无符号整数所需要的总字节数位4*4000000000字节。 总字节数转换为GB4*4000000000 / 1024 / 1024 /1024 14.9 GB 考虑到其中有一些重复的数据即使这样1G的空间基本上也是不够的。所以想要实现这个功能可以借助BitMap。 如果使用位图的话40亿万所需要的内存大概也就是 476M 40亿无符号整数数据的总字节数是4000000000 字节在位图中1个10位的无符号整数可以使用1 bit表示然后1 字节 8 位bit。 4000000000 bit * 1/8 求出字节数再 / 1024得到占用的KB数最后/ 1024得到占用的MB数 4000000000 * 1 /8 /1024/1024 476M 这样相比于之前的14.9G来说大大的节省了很多空间。 比如要把数据714771310放到BitMap中就需要找到第714771310这个位置然后把他设置成1就可以了。 这样把40亿个数字都放到BitMap之后所有位置上是1的表示存在不为1的表示不存在相同的数据只需要设置一次1就可以了那么最终就把所有是1的数字遍历出来就行了。 5.BitMap在Java中的使用 BitMap在Java中的具体实现时java.util中的BitSetBitSet是一个可变大小的位向量能够动态增长以容纳更多的数据以下是BitSet基本使用示例 import java.util.BitSet;public class BitmapExample {public static void main(String[] args) {// 创建一个BitSet实例BitSet bitmap new BitSet();// 设置第5个位置为1表示第5个元素存在bitmap.set(5);// 检查第5个位置是否已设置boolean exists bitmap.get(5);System.out.println(Element at position 5 exists: exists); // 输出: Element at position 5 exists: true// 设置从索引10到20的所有位置为1bitmap.set(10, 21); // 参数是包含起始点和不包含终点的区间// 计算bitset中所有值为1的位的数量相当于计算设置了的元素个数int count bitmap.cardinality();System.out.println(Number of set bits: count);// 清除第5个位置bitmap.clear(5);// 判断位图是否为空boolean isEmpty bitmap.isEmpty();System.out.println(Is the bitset empty after clearing some bits? isEmpty);} }6.总结  本文简单的讲解了如何使用BitMap进行大量数据的去重BitMap的空间占用极小对单个元素的存在性检查时间复杂度为O(1)非常快速除了BitMap外我们也可以采取布隆过滤器来完成去重但是布隆过滤器存在误判问题可以根据实际场景来分析使用哪种方案
http://www.zqtcl.cn/news/631373/

相关文章:

  • 深圳赶集同城网站建设网站空间类型
  • 怎么样做网站代wordpress手机上传图片插件
  • 西安做网站xamokjwordpress 酒业模板
  • 做微博网站如何开网店卖自己的东西
  • 黄骅市有什么好玩的地方常州百度seo排名
  • 做英语在线翻译兼职网站公交建设公司的官网
  • 做网站需要什么电脑律师事务所在线咨询免费
  • 网站建设推广公司需要哪些岗位建站模板源码
  • 网站深圳优化建设购物网站模版
  • 网站后端用什么软件做广西城乡建设部网站首页
  • wordpress android客户端湛江网站关键词优化
  • 建材企业网站推广方案申请域名建立网站
  • 备案期间网站要关闭吗汽车行业网站建设比较好
  • 百度网站优化公司做欧洲电商看哪个网站
  • 性做网站推广赚钱群
  • 猪八戒网站做推广怎么样制作企业网站是怎么收费的
  • 罗湖网站公司wordpress 单页面美化
  • 小白自己做网站商业摄影网站源码
  • 网站做外链什么意思青岛科友网站建设网络公司
  • 洛阳网站建设培训杭州seo网站排名
  • 长沙公司网站wordpress发文章后显示两篇
  • 优享购物官方网站wordpress添加数据
  • 重庆工程建设造价信息网站娱乐网站策划书
  • 南通电商网站建设网站设计制作电话多少
  • 微网站搭建流程郑州市金水区建设局官方网站
  • 手工活接单在家做有正规网站吗网站开发的职责与分工
  • 网站程序系统信阳建网站
  • 站长工具关键词排名怎么查深企在线
  • 长垣县建站塔山双喜网站被抓取
  • 如何更改网站的关键词企业商务网站有哪些