bitset,位集合,用於判斷乙個int數字是否存在與bitset中。
使用乙個或多個long儲存資料,占用記憶體超級小,因為判斷64位二進位制long中第n位為1表示n這個數字存在,為0表示不存在。所以乙個long可以表示2^63 -1個數字的存在情況。
使用場景,如手機號重複校驗,數字id重複校驗,qq號重複校驗等大量防重的場景。
存在與否是精確的,說不存在絕對不存在,說存在絕對存在,不像布隆過濾器。
1.bitset的內部實現是long陣列,因為乙個long位數不夠表示時,會擴充套件到多個long
2.set中每乙個位的預設值為false(0)
3.bitset長度按需增長
4.bitset非執行緒安全
public
static
void
bitsetdemo()
bitset bs2 =
newbitset()
; bs2.
set(1)
; bs2.
set(2)
; bs2.
set(6)
; system.out.
println
(bs2.
tostring()
);////取交集,兩者都有的才保留
bs.and(bs2)
; system.out.
println
(bs.
tostring()
);////取並集,把兩者所有的都保留
bs.or(bs2)
; system.out.
println
(bs.
tostring()
);//}
C 實現計算乙個檔案的16位校驗和
1 問題敘述 編寫乙個電腦程式用來計算乙個檔案的 16 位校驗和。最快速的方法是用乙個 32 位的整數來存放這個和。記住要處理進製 例如,超過 16 位的那些位 把它們加到校驗和中。要求 1 以命令列形式執行 check sum infile 其中 check sum 為程式名,infile 為輸入...
set集合(set是乙個無序且不重複的元素集合)
功能 一 可以去掉列表,元組中的重複項 二 可以求交集,合集,差集等 def add self,args,kwargs 新增 s1 1,2,3,4,2,3,1 s3 set s1 s4 s3.add 5 print s1 print s3 print s4 1,2,3,4,2,3,1 none de...
求集合中選乙個數與當前值進行位運算的max
這是乙個聽來的神仙東西。先確定一下值域把,大概 2 再大點也可以,但是這裡就只是寫寫,所以無所謂啦。我們先看看如果暴力求怎麼做,位運算需要給定 01 10,00,11 的關係,總共 8 種。如果是暴力的話,我們的方法有兩種,第一種是比較喜聞樂見的,我們對於當前數 x 暴力計算所有存在的數 a i 中...