Se llama así lo que en realidad es un Vector de bits. Lo que ocurre es que está optimizado para uso de bits. Bueno, optimizado en cuanto a tamaño, porque en lo que respecta al tiempo de acceso a los elementos, es bastante más lento que el acceso a un array de elementos del mismo tipo básico.
Además, el tamaño mínimo de un BitSet es de 64 bits. Es decir, que si se está almacenando cualquier otra cosa menor, por ejemplo de 8 bits, se estará desperdiciando espacio.
En un Vector normal, la colección se expande cuando se añaden más elementos. En el BitSet ocurre los mismo pero ordenadamente.
Se utiliza el generador de números aleatorios para obtener un byte, un short y un int, que son convertidos a su patrón de bits e incorporados al BitSet.
**************************************************************************************************
import java.util.*;
public class java414 {
public static void main(String args[]) {
Random aleat = new Random();
// Coge el bit menos significativo devuelto por nextInt()
byte bt = (byte)aleat.nextInt();
BitSet bbyte = new BitSet();
for( int i=7; i >= 0; i-- ) {
if( ( (1 <<>
bbyte.set( i );
else
bbyte.clear( i );
}
System.out.println( "Valor byte: "+bt );
printBitSet( bbyte );
short st = (short)aleat.nextInt();
BitSet bshort = new BitSet();
for( int i=15; i >= 0; i-- ) {
if( ( (1 <<>
bshort.set( i );
else
bshort.clear( i );
}
System.out.println( "Valor short: "+st );
printBitSet( bshort );
int it = aleat.nextInt();
BitSet bint = new BitSet();
for( int i=31; i >= 0; i-- ) {
if( ( (1 <<>
bint.set( i );
else
bint.clear( i );
}
System.out.println( "Valor int: "+it );
printBitSet(bint);
// Prueba BitSets mayores o iguales a 64 bits
BitSet b1 = new BitSet();
b1.set( 127 );
System.out.println( "Fija el bit 127: "+b1 );
BitSet b2 = new BitSet( 65 );
b2.set(255);
System.out.println( "Fija el bit 255: "+b2 );
BitSet b3 = new BitSet( 512 );
b3.set( 1023 );
System.out.println( "Fija el bit 1023: "+b3 );
}
static void printBitSet( BitSet b ) {
System.out.println( "Bits: "+b );
String bbits = new String();
for( int j=0; j <>
bbits += ( b.get( j ) ? "1" : "0" );
System.out.println( "Patron de bits: "+bbits );
}
}
.jpg)
0 comentarios:
Publicar un comentario