1. 程式人生 > >Java學習筆記(九) Bitset

Java學習筆記(九) Bitset

Bitset

bitset是Java的collections中不太常用的,它提供了高效的位操作的方法。

建立bitset

public BitSet()
public BitSet(int nbits)

預設情況下初始是64位,如果設定了大小,那麼會建立一個容量為最接近設定值的64的整數倍的空間的bitset

操作bitset

既可以對於bitset裡的某一位進行操作,也可以針對整個bitset進行操作。

操作單個bit

函式名稱 作用
public void set(int position) 對某一位設定1
public void clear(int position) 對某一位設定0
public boolean get(int position) 獲取某一位的當前值

如果下標不存在,會丟擲異常IndexOutOfBoundsException

操作整個bitset

函式名稱 作用
public void and ( BitSet set ) this[index] &= set[index]
public void or ( BitSet set ) this[index]
public void xor ( BitSet set ) this[index] ^= set[index]
public void andBot ( BitSet set ) this[index] &= ~set[index]

注意:
如果兩個bitset的位數不相同,採取如下方式進行操作:
- and():如果引數的位數大於this的位數,那麼引數多餘的位數被忽略。如果this的位數大於引數的位數,那麼引數的不足位用0補足。
- or\xor():不管什麼情況,都是用0補足不夠的位數。
- andNot():多餘的位數全被忽略。

獲取bitset的大小

函式名稱 作用
size() 獲取bitset佔用的capacity()
length() 獲得被設定值的bitset的長度

類基本的功能:

函式名稱 作用
clone() 獲取bitset的一個拷貝
equals() 判斷兩個bitset是否相等,較短的bitset的長度內相等則認為相等
hashCode() 獲得一個bitset的雜湊函式的值

bitset雖然不怎麼常用,但是在記錄狀態的時候還是有很大優勢的~~

相關推薦

Java學習筆記() Bitset

Bitset bitset是Java的collections中不太常用的,它提供了高效的位操作的方法。 建立bitset public BitSet() public BitSet(int nbits) 預設情況下初始是64位,如果設定了大小,那

java學習筆記):Java 流(Stream)、文件(File)和IO

用戶輸入 public 文件內容 輸出流 out 單個 java 我們 ready Java 的控制臺輸入由 System.in 完成。 為了獲得一個綁定到控制臺的字符流,你可以把 System.in 包裝在一個 BufferedReader 對象中來創建一個字符流。需要i

Java學習筆記16(面向對象:補充內容)

nal ati 接收 pri version prot sys add [] 總是看到四種權限,這裏做一個介紹: 最大權限是public,後面依次是protected,default,private private修飾的只在本類可以使用 public是最大權限,可以跨包使用

java學習筆記)-- java新特性 ( 可變引數 & 泛型 & 靜態匯入 & 型別擦除 )

JDK1.5新特性 方法的可變引數             設計一個方法,可以接收任意個數的整數,並返回他們的相加結果       

Java多執行緒學習筆記() 生產者/消費者模式實現

1. 一個生產者和一個消費者:操作值 1.1 公共值 public class ValueObject { public static String value = ""; } 1.2 生產者 public class Producer {

Java併發學習筆記()-原子類AtomicInteger

AtomicInteger能夠保證對一個整型的操作是原子性。像i++這個操作不是原子操作,存在競態條件,所以需要加鎖,但是加鎖的效能不高,如果僅僅為了對一個整數加1。我們來看下他的實現。 private volatile int value; AtomicInte

Java SE 學習筆記()

1.      介面(interface) : 一個類只能有一個父類, 但是可以實現多個介面 2.      多型(polymorphism) : 多型的前提: 必須存在繼承或者實現關係 3.      多型情況下的訪問 : a)        多型情況下, 子類和

java之jvm學習筆記(策略檔案)

                      什麼是java的策略,什麼又是策略檔案。                       今天我換一下筆記的方式,不是直接講概念,而是先來做一個小例子,相信你做完這個例子之後再看我對例子的講解,你對策略,策略檔案,會豁然開朗的感覺

java學習筆記——String類

通過 ray [] 原理 log spl 2.3 -s 長度 一、概述 ·字符串是一個特殊的對象 ·字符串一旦初始化就不可以被改變 ·String str = "abc"; ·String str1 = new String("abc"); 有什麽區別? package

java學習筆記——java中對象的創建,初始化,引用的解析

初始 學習筆記 style article 學習 base 表達 如果 bsp 如果有一個A類。 1、例如以下表達式: A a1 = new A(); 那麽A是類,a1是引用。new A()是對象。僅僅是a1這個引用指向了new A()這個對象。 2、又如: A

Java學習筆記--鏈表

引用變量 nts mage 集合 tran 分享 isp exce pub 心在山東身在吳,飄蓬江海漫嗟籲。 他時若遂淩雲誌, 敢笑黃巢不丈夫。                ——水滸傳 先上源代碼,LinkedList類: 1 private static class

Java學習筆記——淺談數據結構與Java集合框架(第一篇、List)

技術分享 emp 鏈表 adc 下標 -c nod nal integer 橫看成嶺側成峰,遠近高低各不同。不識廬山真面目,只緣身在此山中。               ——蘇軾 這一塊兒學的是雲裏霧裏,咱們先從簡單的入手。逐漸的撥開迷霧見太陽。本次先做List集合的三

JAVA學習筆記(1)——a++與++a的區別

col int 演示 opera 解析 代碼 數據 ++i div 需求:此博客用於解釋i++與++i的區別。 過程: 1、名稱解釋 ++:自增,即在原有數據基礎上+1,再賦給原有數據。 2、程序演示 (1)代碼: 1 class OperateDemo 2 { 3

Java學習筆記——泛型

ray dem 想想 string stub odt 好處 reac test 一、什麽是泛型?為什麽要使用泛型? 且看代碼: 1 public class GenericsDemo { 2 3 public static void main(String

Java學習筆記——排序算法之O(n²)排序

blog sel != 而是 while bsp 優化 ++ logs 男兒何不帶吳鉤,收取關山五十州。請君暫上淩煙閣,若個書生萬戶侯?                               ——南園十三首 三種排序法: 1、冒泡法 2、簡單選擇法 3、直接插入法

Java學習筆記——排序算法之進階排序(堆排序與分治並歸排序)

進行 技術分享 ring http 沒有 oid 有序 重復 調整 春蠶到死絲方盡,蠟炬成灰淚始幹               ——無題 這裏介紹兩個比較難的算法: 1、堆排序 2、分治並歸排序 先說堆。 這裏請大家先自行了解完全二叉樹的數據結構。 堆是完全二叉樹。

Java學習筆記——設計模式之五.工廠方法

strong scanner multipl 石頭 simple 決定 定義 opera 下使用 水邊一只青蛙在笑       ——石頭和水 工廠方法模式(Factory Method),定義了一個用於創建對象的接口,讓實現類決定實例化哪一個類。工廠方法使一個類的實

Java學習筆記——String類型轉換

世界 java學習筆記 getc [] bool bsp ati nbsp ole 一滴水裏觀滄海,一粒沙中看世界               ——一帶一路歡迎宴致辭 上代碼: 1 package cn.stringtoobj; 2 3 public

Java學習筆記--double類型數據精度

java學習 double 在一次面試中被問到,有兩個double類型的數相減,會出現精度丟失,應該怎麽辦,有什麽解決方法。今天特地去搜了下,解決方法就是用BigDecimal類對數據進行處理。 了解詳細參考:http://blog.csdn.net/u011328015/article

JAVA學習筆記(三)

byte repl efi ber 時間 clas 區分大小寫 增強for size @SuppressWarnings("resource")是用來壓制資源泄露警告的。比如使用io類,最後沒有關閉。Set集合特點:1)無序,不隨機2)元素唯一3)沒下標註意:Collect