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 :

Création liste selon donnée


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 139
    Par défaut Création liste selon donnée
    Bonjour,
    mon problème me parait simple mais en y réfléchissant impossible de trouver un algorithme "intéressant" pour y répondre...
    Je voudrai, une fois un chiffre récupéré, créer une liste contenant l'ensemble des valeurs commencant par ce chiffre de 0 à 999.
    Un exemple étant toujours plus clair :

    Si l'utilisateur tape 2 : je voudrai dans ma liste 2, 20, 21, ...29, 200, 201, 202,...
    Si l'utilisateur tape 18 : 18, 180, 181, 182,...

    Existe-t-il une méthode, algorithme simple à mettre en place ?
    Merci beaucoup

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 282
    Par défaut
    Hum ... c'est bourrin mais tu peux créer un Integer qui vaut 0, et dans une boucle l'incrémenter jusqu'à 999 en regardant à chaque passage :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if (monInt.toString().startsWith(valeurUtilisateur.toString()) {
      // je l'ajoute a ma liste
    }
    monInt étant l'entier initialisé à 0 et valeurUtilisateur un autre Integer, celui donné par l'utilisateur

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 139
    Par défaut
    ahahahaha oui en effet c'est plus que bourrin :p
    Mais c'est en effet une solution...Le problème est que j'essaye de faire quelque chose qui va le plus vite possible...
    Une solution serait peut-etre un parcours d'arbre mais j'aimerai trouver entre les deux

  4. #4
    Membre expérimenté Avatar de djidane39
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    272
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2006
    Messages : 272
    Par défaut
    je pense pas qui ait une belle solution pour ce genre de problème.
    l'idée la mieu serait:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    x: le nombe tapé
    liste = vide
    liste2 = vide
    si x<10
        pour tout y de 0 à 9
            ajouter à liste x*10 + y
        pour tout element z de la liste
            pour tout y de 0 à 9
                ajouter à liste2 z*10 + y
    si x > 10 et <100
        pour tout y de 0 à 9
            ajouter à liste x*10 + y
     
    resultat = x + liste + liste2
    l'idée est là, aprés faut adapter
    enfin c'est ce que je ferai..

  5. #5
    Membre éclairé
    Homme Profil pro
    NoOb
    Inscrit en
    Mai 2007
    Messages
    554
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : NoOb

    Informations forums :
    Inscription : Mai 2007
    Messages : 554
    Par défaut
    Je pense que tu orai du poster ca dans le forum algorithme.

    Cependant tu peut faire ca facilement en comparant des String, mais c'est moche et lourd.

    EDIT : grillé

  6. #6
    Membre expérimenté
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 282
    Par défaut
    Citation Envoyé par Génoce Voir le message
    Je pense que tu orai du poster ca dans le forum algorithme.

    Cependant tu peut faire ca facilement en comparant des String, mais c'est moche et lourd.

    EDIT : grillé
    Ah ah chacun son tour sur des posts différents :p

    Sinon en effet c'est quand même plus propre avec le code récursif

  7. #7
    Membre émérite Avatar de Gardyen
    Homme Profil pro
    Bio informaticien
    Inscrit en
    Août 2005
    Messages
    637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Bio informaticien

    Informations forums :
    Inscription : Août 2005
    Messages : 637
    Par défaut
    hum que penses tu de celui ci (j'adore le recursif )

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
    public static void main(String[] args) {
    		TreeSet<Integer> list = new TreeSet<Integer>();
    		recursiveLoop(list, "2", 3);
    		System.out.println(list.size());
    		for (Integer integer : list) {
    			System.out.println(integer);
    		}
    	}
     
    	/**
             * @param list la liste stockant et triant les nombres ajoutes
             * @param prefix le nombre formant le prefixe
             * @param depth le nombre maximal de chiffres dans les nombres que l'on cherche (ici, de 0 a 999 donc 3)
             */
    	private static void recursiveLoop(TreeSet<Integer> list, String prefix, int depth){
    		// Ajoute le nombre dans la liste
    		list.add(new Integer(prefix));
     
    		// Stop ici si on a atteint le niveau minimal
    		if (depth > 1){
    			for (int i = 0; i < 10; i++) {
    				recursiveLoop(list, prefix.concat(String.valueOf(i)), depth-1);
    			}
    		}
    	}

  8. #8
    Membre expérimenté Avatar de djidane39
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    272
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2006
    Messages : 272
    Par défaut
    j'y pensait aussi ^_^ c'est la solution optimale je pense, enfin au moins la plus propre

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 139
    Par défaut
    merci je met ca en place et vous tiens au courant !

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 139
    Par défaut
    marche impéc !
    merci !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2010] Test du contenu saisi sur un liste de données, couleur selon resultat
    Par moh2ss dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 01/08/2014, 20h46
  2. [XL-2010] Création d'une liste selon conditions sur plusieurs feuilles
    Par jossuka dans le forum Excel
    Réponses: 2
    Dernier message: 29/10/2012, 09h59
  3. Réponses: 10
    Dernier message: 26/07/2011, 18h44
  4. Réponses: 3
    Dernier message: 10/10/2006, 20h45

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