當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Java BitSet previousSetBit()用法及代碼示例


BitSet是java.util包中定義的類。它創建一個由布爾值表示的位數組。

先決條件:Java BitSet |套裝1

Bitset.previousSetBit()
此方法用於查找在指定的起始索引上或之前是否存在任何真位。
此函數返回在指定的起始索引上或之前出現的,設置為true的最近位的索引。如果不存在這樣的位,或者給定-1作為起始索引,則返回-1。


用法:

public int previousSetBit(int fromIndex)

參數:此方法采用強製性參數fromIndex,該參數是從(包括)開始檢查在此fromIndex或之前出現的真實位的索引。

返回值:此方法返回在指定索引上或之前出現的前一個設置位的索引;如果沒有這樣的位,則返回-1。

異常:如果指定的索引小於-1,則此方法將引發IndexOutOfBoundsException。

注意:要遍曆BitSet中的真實位,請使用以下循環:

for (int i = bs.length(); (i = bs.previousSetBit(i-1)) >= 0; ) {
     // operate on index i here
 }

以下示例程序旨在說明previousSetBit()方法:

示例1:要顯示previousSetBit()函數的實現:

// Java program illustrating Bitset 
// previousSetBit() function. 
  
import java.util.*; 
public class GFG { 
    public static void main(String[] args) 
    { 
        // Constructors of BitSet class 
        BitSet bs1 = new BitSet(); 
        BitSet bs2 = new BitSet(); 
        BitSet bs3 = new BitSet(); 
  
        /* assigning values to set1*/
        bs1.set(0); 
        bs1.set(1); 
        bs1.set(2); 
        bs1.set(4); 
  
        // assign values to bs2 
        bs2.set(4); 
        bs2.set(6); 
        bs2.set(5); 
        bs2.set(1); 
        bs2.set(2); 
        bs2.set(3); 
        bs2.set(12); 
  
        // Printing the 2 Bitsets 
        System.out.println("bs1 : " + bs1); 
        System.out.println("bs2 : " + bs2); 
        System.out.println("bs3 : " + bs3); 
  
        // Performing length() on bitsets 
        System.out.println("Previous Set Bit of bs1 "
                           + bs1.previousSetBit(2)); 
        System.out.println("Previous Set Bit of bs2 "
                           + bs2.previousSetBit(1)); 
        System.out.println("Previous Set Bit of bs3 "
                           + bs3.previousSetBit(3)); 
    } 
}
輸出:
bs1 : {0, 1, 2, 4}
bs2 : {1, 2, 3, 4, 5, 6, 12}
bs3 : {}
Previous Set Bit of bs1 2
Previous Set Bit of bs2 1
Previous Set Bit of bs3 -1

示例2:要顯示IndexOutOfBoundException:

// Java program illustrating Bitset 
// previousSetBit() function. 
  
import java.util.*; 
public class GFG { 
    public static void main(String[] args) 
    { 
        // Constructors of BitSet class 
        BitSet bs1 = new BitSet(); 
  
        // assigning values to set1 
        bs1.set(0); 
        bs1.set(1); 
        bs1.set(2); 
        bs1.set(4); 
  
        // Printing the Bitset 
        System.out.println("bs1 : " + bs1); 
  
        try { 
            // Passing -2 as parameter 
            System.out.println(bs1.previousSetBit(-2)); 
        } 
        catch (Exception e) { 
            System.out.println("Exception when "
                               + "index less than -1 is passed "
                               + "as parameter : " + e); 
        } 
    } 
}
輸出:
bs1 : {0, 1, 2, 4}
Exception when index less than -1 is passed as parameter : java.lang.IndexOutOfBoundsException: fromIndex 


相關用法


注:本文由純淨天空篩選整理自barykrg大神的英文原創作品 BitSet previousSetBit() method in Java。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。