社区
Java SE
帖子详情
Java里面的bit位操作容器BitArray和BitSet
奈文摩尔_
2021-02-08 04:56:01
今天发现两个挺有用的容器,该容器存储boolean数据,相当于bit位的0和1,某些场景下挺有用。
...全文
501
2
打赏
收藏
Java里面的bit位操作容器BitArray和BitSet
今天发现两个挺有用的容器,该容器存储boolean数据,相当于bit位的0和1,某些场景下挺有用。
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
编号灬9527
2021-02-08
打赏
举报
回复
这个东西倒是没用过,Bitmap那玩意倒是确实香
KeepSayingNo
2021-02-08
打赏
举报
回复
这个确实不错哦
什么是位数组?
Java
使用
Bit
Set
实现位数组
位数组(
Bit
Array
)是一种数据结构,它主要用于高效地利用内存空间来存储大量布尔值(真/假,1/0)。在位数组中,每个元素不再是一个完整的字节(如在大多数常规数组中那样),而是一位,即二进制数的一个比特。这种紧凑的表示方式极大地节省了存储空间,尤其适合需要存储大量稀疏数据的场景。
C语言抽象数据结构——构建位数组(
bit
array
)
最近在看吴军的《数学之美》对其中的一些技术和算法很感兴趣,看到布隆过滤器的时候突然很想自己去动手实现一个自己的布隆过滤器(至于什么是布隆过滤器,传送门在这。在我看来,一个布隆过滤器的核心包括两部分:一个位向量,一组设计精巧的hash函数。今天我要实现的就是第一个核心部件,位向量。位向量,其实就是位数组(
bit
array
),本质就是一个由位构成的序列。如果在C++/
JAVA
当中,这根本算不上一个问题×布隆过滤器
Java
位映射实现数据查重
1、位图法介绍 位图的基本概念是用一个位(
bit
)来标记某个数据的存放状态,由于采用了位为单位来存放数据,所以节省了大量的空间。举个具体的例子,在
Java
中一般一个int数字要占用32位,如果能用一位就表示这个数,就可以缩减大量的存储空间。一般把这种方法称为位图法,即
Bit
map。 位图法比较适合于判断是否存在这样的问题,元素的状态比较少,元素的个数比较多的情况之下。那么具体咋么做呢,这样,非常简单明了就是,2.5亿个整数
里面
,我维护一个长度等于最大整数值得字符串,每个整数是否存在我就在该整数对应的位置置为
Java
后端面试场景题汇总
如此大的数据集进行去重(例如50亿数据条目),我们需要考虑内存和存储空间的限制,同时还需要有一个算法。一般来说,这样的数据量无法直接载入内存进行处理,因此需要采用磁盘存储和分布式处理的技术。将数据分为多个批次,每个可以加载到内存中。对每一批数据进行排序和去重,然后存回磁盘。对所有排序且去重后的批次进行归并排序,同时去重。使用哈希函数将数据分配到不同的桶(Bucket)或文件中,确保相同的数据项会落到同一个桶里。对每个桶的数据进行内存中去重操作。
Java
缓存穿透解决方案详解
在当今大数据时代,
Java
作为主流的开发语言之一,在处理海量数据时面临着诸多挑战。其中,缓存穿透问题就是其中一个典型的难题。想象一下,在一个大型电商系统中,用户通过搜索功能查询商品信息。如果系统直接查询数据库而不经过缓存,那么对于不存在的商品ID,数据库会返回空结果。然而,如果恶意用户利用这些不存在的ID进行频繁的查询,就会导致数据库承受巨大的压力,甚至可能因为查询量过大而崩溃。缓存穿透问题之所以重要,是因为它直接关系到系统的稳定性和性能。
Java SE
62,630
社区成员
307,264
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章