1. #1
    Membre actif
    Profil pro
    Gestionnaire de données
    Inscrit en
    mars 2006
    Messages
    339
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestionnaire de données
    Secteur : Service public

    Informations forums :
    Inscription : mars 2006
    Messages : 339
    Points : 233
    Points
    233

    Par défaut Tableau d'entier dans une variable de contexte

    Bonjour,

    Dans un tmap je dois vérifier si un entier (row1.mon_entier) appartient à une liste d'entiers.
    Par exemple : est-ce que l'entier row1.mon_entier est dans la liste (1,2,4,5,9)

    Je voudrais :

    1) Mettre cette liste en tant que variable de contexte

    2) Tester si un entier est dans cette liste

    Merci d'avance !

  2. #2
    Membre éprouvé Avatar de supergeoffrey
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    octobre 2010
    Messages
    598
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : octobre 2010
    Messages : 598
    Points : 1 233
    Points
    1 233

    Par défaut

    Avec une routine est le plus simple.

    Dans une routine
    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
       public java.util.List<Integer> parseListInteger(String input, String separator) {
            final String[] stringValues = input.split(separator);
            java.util.List<Integer> list = new java.util.ArrayList<>();
            for(String s : stringValues) {
                list.add(Integer.valueOf(s));
            }
            return list;
        }

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TaRoutine.parseListInteger(context.variable,",").contains(42)

    Si tu veux un peut de performance et garder ta liste en cache

    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
    27
    28
    29
        private java.util.Map<String, java.util.Map<String, java.util.List<Integer>>> cache;
     
        public java.util.List<Integer> parseListInteger(final String input, final String separator, final boolean useCache) {
            java.util.List<Integer> list = null;
            java.util.Map<String, java.util.List<Integer>> cacheBySeparator = null;
            if (useCache) {
                if (cache == null) {
                    cache = new java.util.HashMap<>();
                }
                cacheBySeparator = cache.get(separator);
                if (cacheBySeparator == null) {
                    cacheBySeparator = new java.util.HashMap<>();
                    cache.put(separator, cacheBySeparator);
                }
                list = cacheBySeparator.get(input);
     
            }
            if (list == null) {
                final String[] stringValues = input.split(separator);
                list = new java.util.ArrayList<>();
                for (final String s : stringValues) {
                    list.add(Integer.valueOf(s));
                }
                if (cacheBySeparator != null) {
                    cacheBySeparator.put(input, list);
                }
            }
            return list;
        }
    avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TaRoutine.parseListInteger(context.variable,",",true).contains(42)
    Pensez à marquer vos tickets comme résolus.
    Pensez aussi aux pour les réponses pertinantes

    Quand une discutions est résolue depuis un moment pour revenir dessus, il est mieux d'en crée une nouvelle avec un lien vers l'autre car :
    • Elle sera en haut du forum, elle sera donc plus visible
    • Une discussion résolue, on ne passe pas dessus pour aider, on passe dessus si on a le même problème
    • Tu demandes surement à tes clients de faire le même

Discussions similaires

  1. Réponses: 1
    Dernier message: 06/06/2017, 00h21
  2. Réponses: 3
    Dernier message: 19/03/2007, 18h29
  3. [VBA-E]Recherche dans une variable tableau
    Par illight dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 12/12/2006, 17h50
  4. Réponses: 6
    Dernier message: 30/09/2006, 15h14
  5. [XSLT] Réutiliser un contexte mémorisé dans une variable
    Par camboui dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 02/01/2006, 12h49

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