BitSet

Bonjour,
J'ai un tableau de BitSet.
Je veux déterminer le nombre de 1 par colonne, pour une utilisation ultérieure.

pour créer mon tableau de BitSet j'ai fait ce qui suit:

BitSet F[]=new BitSet[200];

int i=0;
while (i<F.length)
F[i]=new BitSet(100);
i++;

Supposons que mon tableau est plein(c'est mon cas).
je veux déterminer le nombre de 1 par colonne, et le stocker , pour une utilisation ultérieure.

j'ai crée la méthode suivante

static int [] FrequentItem(BitSet[]F)
{

int i=0;
int j=0;
int temp=0;
int []frequence=null;
while (i<F.length && j<F[i].length())
{
if(F[i].get(j)==true)
temp++;
frequence =new int[F[j].length()];
frequence[j]=temp;
}
j++;
i++;
return frequence;

}

maintenant je veux creer un deuxieme BitSet et la remplir suivant la frequence de nombre de 1 dans le premier BitSet.

Est il possible d'utiliser la méthode clone de la classe BitSet ?
Merci d'avance pour vos retour



--

2 réponses

  1. Bonjour ,
    Je veux rectifier ce que j'ai posté, car la fonction que j'ai publié ne marche pas.

    la fonction suivante , permet de calculer la frequence de nombre de 1 par colonne.

    static void FrequentItem(BitSet[]tempB)
    {
    int []t=new int[10];
    int temp=0;
    for(int i=0;i<tempB.length;i++)
    {
    tempB[i]=new BitSet(10);
    }

    System.out.println("Le contenu de la table \n ");
    for(int k=0;k<10;k++)
    {
    for(int n=0;n<tempB.length;n++)

    {
    if(tempB[n].get(k))
    {
    temp++;
    t[k]=temp;

    }

    }
    temp=0;

    System.out.println(t[k]);

    }
    }//FrequentItem
    1. Déjà commence par mettre des balises codes... Ensuite on verra. Cela dit ce deuxieme post m'interpelle, si tu n'arrives pas à faire ce genre de choses je suppose que tu n'en es pas à l'optimisation de ton code. Tu devrais commencer par faire quelque chose qui fonctionne et ensuite réfléchir à comment l'améliorer. Je pense que ce sera déjà très bien pour commencer.
    2. @YCN-Bonjour,

      Le deuxième code que j'ai posté fonctionne trés bien, je l'ai testé et avec ça, je veux encore rectifié.

      il ya la methode Cardinality() de la classe BitSet qui permet de retourner le nombre de bits = 1

      Donc cette méthode fait exactement ce que je cherche.
    3. @YCN-Vous etes sur le forum pour uniquement commenter sans aider malheureusement.
      des commentaires non utiles.