如何解决将长值数组编码为 BitSet
我看到我们可以将一个整数数组编码成一个 BitSet 并像这样检索它们:
int[] ints = new int[]{5,7,25,100102244};
BitSet b = new BitSet();
for (int i=0;i<ints.length;i++)
b.set(ints[i]);
b.stream().forEach(i -> System.out.println(i));
哪个输出
5
7
25
100102244
是否可以对 long 数组执行相同操作?
提前致谢,
解决方法
使用LongBuffer:
import java.nio.*;
import java.util.*;
var buffer = LongBuffer.wrap(new long[] { 5,7,25,100102244 });
var bitset = BitSet.valueOf(buffer);
System.out.println(bitset);
for (long l : bitset.toLongArray()) {
System.out.println(l);
}
{0,2,64,65,66,128,131,132,194,197,198,204,205,206,208,209,210,212,213,214,215,216,218}
5
7
25
100102244
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。