IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Java Discussion :

objet booléen en 0/1 léger


Sujet :

Langage Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 98
    Points : 50
    Points
    50
    Par défaut objet booléen en 0/1 léger
    Bonjour à tous,

    J'aimerais créer un objet de type int ou byte qui ne puisse prendre sa valeur que parmi 0 et 1. Je maîtrise Java dans son ensemble mais dès qu'il s'agit de faire de l'optimisation, je suis un peu frileux et pourtant la j'ai réellement besoin de créer un objet (ou d'en utiliser un existant) qui soit le plus léger possible et dont la valeur peut être uniquement 0 ou 1.

    Vous avez des idées?

    Merci d'avance,

    Charles
    Je m'en fous, je suis fou!

  2. #2
    Membre éclairé
    Avatar de divxdede
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    525
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2004
    Messages : 525
    Points : 844
    Points
    844
    Par défaut
    Pourquoi ne pas utiliser le type primitif "boolean" ?
    JBusyComponent, une API pour rendre occupé un composant swing.
    SCJP Java 6.0 (90% pass score)

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 98
    Points : 50
    Points
    50
    Par défaut
    j'y ai bien pensé, mais cet objet doit être utilisé dans des équations sans avoir à contrôler sa valeur.
    Je m'en fous, je suis fou!

  4. #4
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Salut,

    Citation Envoyé par Carlito_superheros Voir le message
    j'y ai bien pensé, mais cet objet doit être utilisé dans des équations sans avoir à contrôler sa valeur.
    Je ne comprend pas ce qui te gêne

    a++

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 98
    Points : 50
    Points
    50
    Par défaut
    J'aimerais pouvoir faire une équation dans ce genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int toto = x1 * value1 + x2 * value2 +...+ xn * valuen
    ou xi a pour valeur 0 ou 1
    Je m'en fous, je suis fou!

  6. #6
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Il te suffit de convertir les booleans en ints lors du calcul :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    	public static int intValue(boolean b) {
    		return ( b ? 1 : 0 );
    	}
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int toto = intValue(x1) * value1 + intValue(x2) * value2 +...+ intValue(xn) * valuen
    a++

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 98
    Points : 50
    Points
    50
    Par défaut
    Et ca serait plus intéressant en terme de consommation mémoire et que d'avoir un byte ?
    Je m'en fous, je suis fou!

  8. #8
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Lorsque tu fais des calculs avec des types différents, le plus petit type est "élevé" vers le plus grand donc le résultat devrait être le même.

    Maintenant libre à toi de faire des tests pour vérifier cela... mais perso je n'y vois pas vraiment d'intérêt.

    a++

  9. #9
    Membre habitué

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 125
    Points : 175
    Points
    175
    Par défaut
    J'ai comme l'impression que tu cherches à faire ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    if (b1) {
     toto += value1;
    }
     
    if (b2) {
     toto += value2;
    }
    ...
    En faire des entiers ne va pas optimiser ton code, certainement pas en vitesse ou occupation mémoire.

  10. #10
    Membre confirmé
    Inscrit en
    Mai 2007
    Messages
    335
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 335
    Points : 511
    Points
    511
    Par défaut Pour info
    bonjour à tous,
    pour moi, il faut voir du côté de BitSet:

    http://java.sun.com/j2se/1.5.0/docs/...il/BitSet.html

    par contre c'est plus une optimisation "mémoire" que perf.

Discussions similaires

  1. [Designer V5-V6] Conception d'un objet booléen issu d'un between
    Par kalaghan dans le forum Débuter
    Réponses: 6
    Dernier message: 06/10/2011, 09h47
  2. Sérialisation d'un objet booléen
    Par mimosa803 dans le forum C#
    Réponses: 2
    Dernier message: 09/04/2009, 10h55
  3. Importer des objets de 3dsMax
    Par Anonymous dans le forum OpenGL
    Réponses: 3
    Dernier message: 06/05/2002, 13h53
  4. Peux t'on créer une copie locale de l'objet partagé?
    Par Anonymous dans le forum CORBA
    Réponses: 8
    Dernier message: 16/04/2002, 16h20
  5. [Kylix] Erreur objet
    Par Anonymous dans le forum EDI
    Réponses: 1
    Dernier message: 22/03/2002, 09h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo