BitSet簡(jiǎn)介

基本原理和用途
BitSet即位圖,是一個(gè)很長(zhǎng)的“0/1”序列,他的功能就是存儲(chǔ)0或者1。

他的這個(gè)特點(diǎn)使得在java環(huán)境中存儲(chǔ)一個(gè)數(shù)要比直接存一個(gè)int節(jié)省很多內(nèi)存空間(一個(gè)int占4個(gè)字節(jié)32位,而用BItSet“存放”一個(gè)數(shù)只需要1個(gè)位)。

比如我們有{1,3,5,7}需要存放,內(nèi)存中占用了4個(gè)int的長(zhǎng)度即32*4(bit),如果使用BitSet,就是這個(gè)樣的[...,1,0,1,0,1,0,1],只需要占用幾個(gè)bit就可以表示。1個(gè)G的內(nèi)存有8 * 1024 * 1024 * 1024 = 8.58 * 10^9個(gè)bit,也就是可以存放85億+個(gè)數(shù)。

BitSet的初始大小為1個(gè)long的大小,即8字節(jié)64個(gè)bit。如果我們創(chuàng)建的BitSet指定了位數(shù),系統(tǒng)會(huì)根據(jù)情況取成64的整數(shù)倍個(gè)bit,即整數(shù)個(gè)long的位數(shù),這樣做是為了內(nèi)存補(bǔ)齊。

BitSet適合用于無(wú)重復(fù),整數(shù),常用于大數(shù)據(jù)場(chǎng)景或者日志統(tǒng)計(jì)。

參考文章:
Java中BitSet的使用及詳解

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 分享自我的微信訂閱號(hào)“猿in”,可以搜索關(guān)注。 Bitset基礎(chǔ) 介紹 bitset(bitmap)也就是位圖,由...
    usun閱讀 4,266評(píng)論 0 4
  • 1. 問(wèn)題引入: 比較經(jīng)典的問(wèn)題是: 在只能夠使用2G的內(nèi)存中,如何完成以下操作:①:對(duì)10億個(gè)不重復(fù)的整數(shù)進(jìn)行排...
    一個(gè)歌手閱讀 1,137評(píng)論 0 2
  • 一、BitMap算法簡(jiǎn)介 Bit-map的基本思想就是用一個(gè)bit位來(lái)標(biāo)記某個(gè)元素對(duì)應(yīng)的Value,而Key即是該...
    我有一只喵喵閱讀 5,922評(píng)論 0 1
  • 一、基礎(chǔ)介紹及索引原理分析 介紹 Elasticsearch 是一個(gè)分布式可擴(kuò)展的實(shí)時(shí)搜索和分析引擎,一個(gè)建立在全...
    Mahon閱讀 501評(píng)論 0 1
  • 原理 原文:https://www.cnblogs.com/dreamroute/p/8484457.html 簡(jiǎn)...
    旭Louis閱讀 897評(píng)論 1 5

友情鏈接更多精彩內(nèi)容