BitSet

Fermé
fatmanajjar Messages postés 15 Date d'inscription dimanche 27 mai 2012 Statut Membre Dernière intervention 8 juin 2017 - 2 juin 2017 à 12:04
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 - 9 juin 2017 à 17:45
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

fatmanajjar Messages postés 15 Date d'inscription dimanche 27 mai 2012 Statut Membre Dernière intervention 8 juin 2017
7 juin 2017 à 14:27
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
0
YCN- Messages postés 116 Date d'inscription mercredi 24 juin 2015 Statut Membre Dernière intervention 13 juillet 2017 12
9 juin 2017 à 09:44
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.
0
fatmanajjar > YCN- Messages postés 116 Date d'inscription mercredi 24 juin 2015 Statut Membre Dernière intervention 13 juillet 2017
9 juin 2017 à 11:38
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.
0
YCN- Messages postés 116 Date d'inscription mercredi 24 juin 2015 Statut Membre Dernière intervention 13 juillet 2017 12
9 juin 2017 à 14:06
0
fatmanajjar > YCN- Messages postés 116 Date d'inscription mercredi 24 juin 2015 Statut Membre Dernière intervention 13 juillet 2017
9 juin 2017 à 14:24
Vous etes sur le forum pour uniquement commenter sans aider malheureusement.
des commentaires non utiles.
0
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
9 juin 2017 à 17:45
"Est il possible d'utiliser la méthode clone de la classe BitSet"
Oui c'est possible. Mais il ne faut pas.
http://www.javapractices.com/topic/TopicAction.do?Id=71

Question = Réponse
0