当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Java BitSet nextSetBit()用法及代码示例


BitSet是java.util包中定义的类。它创建一个由布尔值表示的位数组。

先决条件:Java BitSet |套装1

nextSetBit()方法:
BitSet类中的此方法用于返回设置为true的第一位的索引,该索引出现在指定的起始索引上或之后。如果不存在这样的位,则返回-1。


用法:

public int nextSetBit(int fromIndex)

参数:此方法采用强制性参数fromIndex,该参数是从(包括)开始检查下一个真实位的索引。

返回值:此方法返回下一个设置位的索引;如果不存在该位,则返回-1

异常:如果指定的索引为负,则此方法将引发IndexOutOfBoundsException。

注意:要遍历BitSet中的真实位,请使用以下循环:

for (int i = bs.nextSetBit(0); i >= 0; i = bs.nextSetBit(i+1)) {
     // operate on index i here
 }

示例1:要显示nextSetBit()函数的实现:

// Java program illustrating Bitset 
// nextSetBit() 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 nextSetBit() on bitsets 
        System.out.println(bs1.nextSetBit(2)); 
        System.out.println(bs2.nextSetBit(0)); 
        System.out.println(bs3.nextSetBit(3)); 
    } 
}
输出:
bs1 : {0, 1, 2, 4}
bs2 : {1, 2, 3, 4, 5, 6, 12}
bs3 : {}
2
1
-1

示例2:要显示IndexOutOfBoundException:

// Java program illustrating Bitset 
// nextSetBit() 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(); 
  
        /* 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); 
  
        try { 
            // Passing -1 as parameter 
            System.out.println(bs1.nextSetBit(-1)); 
        } 
        catch (Exception e) { 
            System.out.println("Exception when "
                               + "negative index is passed "
                               + "as parameter : " + e); 
        } 
    } 
}
输出:
bs1 : {0, 1, 2, 4}
bs2 : {1, 2, 3, 4, 5, 6, 12}
Exception when negative index is passed as parameter : java.lang.IndexOutOfBoundsException: fromIndex 


相关用法


注:本文由纯净天空筛选整理自barykrg大神的英文原创作品 BitSet nextSetBit() method in Java。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。