| HOME | FORUM | INDICE |

download BitSetEsempio.java

/*
    L'esempio mostra l'uso della collection BitSet.

    Autore: Agosto 2009, Giovanni Iacobelli - http://www.iacosoft.com

*/


import java.util.*;

class BitSetEsempio
{
    //punto d'ingresso dell'applicazione
    public static void main(String[] args)
    {
        //istanzia il primo vettore di bit
        BitSet bit= new BitSet();

        //imposta a true i primi due bit del vettore
        bit.set(0);
        bit.set(1);

        //visualizza lo stato del vettore
        System.out.println("bit:" + bit);

        //istanzia il secondo vettore di bit
        BitSet bit2= new BitSet();

        //imposta a true il primo bit
        bit2.set(0);

        //effettua l'operazione di AND logico tra i due vettori di bit
        bit.and(bit2);

        //visualizza il risultato dell'operazione
        System.out.println("bit dopo l'and con bit2 (" + bit2+ ") : " + bit);

        /*
            richiama una funzione static della classe che tramite un vettore di bit
            determina il numero distinto di lettere usate nella stringa passata come argomento
        */

        System.out.println("In 'Giovanni' sono presenti un numero di lettere distinte:" + ContaLettereUsate("Giovanni"));
    }

    /*
        restituisce il numero di lettere usate nella stringa passata come argomento
    */

    public static int ContaLettereUsate(String frase)
    {
        BitSet buf= new BitSet();

        for(int x= 0; x< frase.length(); x++)
        {
             int car= frase.charAt(x);
             buf.set(car);
        }
        
        int tot= 0;

        //la dimensione della collection si adatta automaticamente
        for(int x= 0; x < buf.size(); x++)
        {
            if (buf.get(x))
            {
                tot++;
            }
        }
        return tot;
    }
}