Java BitSet nextSetBit()方法

Java BitSet nextSetBit()方法

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

nextSetBit()方法 :
BitSet类中的这个方法用于返回第一个被设置为真值的位的索引,该位发生在指定的起始索引上或之后。如果没有这样的位存在,则返回-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 < 0: -1

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程