Método BitSet anteriorSetBit() en Java

BitSet es una clase definida en el paquete java.util. Crea una array de bits representados por valores booleanos.

Requisito previo: Java BitSet | Serie 1

Bitset.previousSetBit()
Este método se usa para encontrar si hay bits verdaderos que ocurren en o antes del índice de inicio especificado.
Esta función devuelve el índice del bit más cercano que se establece en verdadero que ocurre en o antes del índice de inicio especificado. Si no existe tal bit, o si se proporciona -1 como índice inicial, se devuelve -1.

Sintaxis:

public int previousSetBit(int fromIndex)

Parámetros: este método toma un parámetro obligatorio fromIndex , que es el índice desde el que comenzar a verificar (inclusive) el bit verdadero que ocurre en o antes de este fromIndex.

Valor devuelto: este método devuelve el índice del bit establecido anteriormente que se produce en o antes del índice especificado, o -1 si no existe tal bit.

Excepción: este método genera una excepción IndexOutOfBoundsException si el índice especificado es inferior a -1.

Nota: para iterar sobre los bits verdaderos en un BitSet, use el siguiente bucle:

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

Los siguientes programas ilustran el método anteriorSetBit():

Ejemplo 1: Para mostrar la implementación de la función anteriorSetBit():

// 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));
    }
}
Producción:

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

Ejemplo 2: Para mostrar 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);
        }
    }
}
Producción:

bs1 : {0, 1, 2, 4}
Exception when index less than -1 is passed as parameter : java.lang.IndexOutOfBoundsException: fromIndex < -1: -2

Publicación traducida automáticamente

Artículo escrito por barykrg y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *