找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 331|回复: 0

位图算法

[复制链接]

70

主题

11

回帖

286

积分

管理员

积分
286
发表于 2025-2-5 19:59:51 | 显示全部楼层 |阅读模式
在处理大数据时,采用位图可以很大的节约内存。
但是Java处理bit还是很麻烦的,幸好Java有提供BitSet类,可以很方便的处理位图,实现位图算法。
[color=var(--hltools-color)]


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
import java.util.BitSet;

public class BitmapAlgorithm {

    private BitSet bitSet;

    public BitmapAlgorithm(int size) {
        this.bitSet = new BitSet(size);
    }

    // 将整数n添加到位图中
    public void add(int n) {
        bitSet.set(n);
    }

    // 判断整数n是否在位图中
    public boolean contains(int n) {
        return bitSet.get(n);
    }

    public static void main(String[] args) {
        BitmapAlgorithm bitmap = new BitmapAlgorithm(100); // 假设集合最大大小为100
        bitmap.add(10); // 添加元素10
        bitmap.add(20); // 添加元素20
        bitmap.add(30); // 添加元素30

        System.out.println(bitmap.contains(10)); // 输出: true
        System.out.println(bitmap.contains(40)); // 输出: false
    }
}

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|软件开发

GMT+8, 2025-8-27 13:23 , Processed in 0.122900 second(s), 20 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表