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

Collection et Stream Java Discussion :

filtre sur arraylist de dates


Sujet :

Collection et Stream Java

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

    Informations forums :
    Inscription : Mai 2007
    Messages : 52
    Points : 61
    Points
    61
    Par défaut filtre sur arraylist de dates
    bonjour, je suis confronté au probleme suivant

    j'ai 2 arraylist<date> avec heures

    arraylist A : [8,12,14,18,..] qui representent une DISPONIBILITE de 8h à 12h et de 14h à 18, ...

    arraylist B : [7,10,15,18,...] qui representent une INDISPONIBILITE de 7h à 10h et de 15h à 18,...

    je dois pouvoir restreindre l'arraylist A
    et au final avoir une nouvelle arrayList tenant comptes des indisponibilités,
    ce qui donnerait [10,12,14,15]

    Je dois le faire de manière optimisée. Que me conseiller vous ?
    Merci

  2. #2
    Membre éprouvé
    Inscrit en
    Mars 2006
    Messages
    848
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Mars 2006
    Messages : 848
    Points : 1 078
    Points
    1 078
    Par défaut
    Bonjour,

    La solution que j'adopterais avec ta structure de données consisterait en:
    - une boucle de 2 en 2 sur ta liste A (un parcours des disponibilités)
    - une boucle imbriquée de 2 en 2 sur ta liste B (un parcours des indisponibilités)
    - une mise à jour de la disponibilité s'il y a intersection avec l'indisponibilité

    Niveau optimisation, il y a probablement mieux. Ceci dit, il ne faut pas cherche l'optimisation à outrance, cela peut nuire à la lisibilité du code (et donc à sa maintenabilité et à son fonctionnement).
    Est-ce que ce traitement est vraiment critique?

    Autre question : es-tu tenu de conserver cette structure de données?
    Elle ne me semble pas forcément très propre et peux amener des erreurs lors de la réalisation de l'algorithme.
    J'ai tendance à privilégier une structure aussi claire que possible.

  3. #3
    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
    Points : 852
    Points
    852
    Par défaut
    Salut,

    Je pense que déterminer les mins et maxs par demi journée et faire des soustractions feraient très bien l'affaire

    EDIT: Grillé par Deaf, qui a plus détaillé

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 52
    Points : 61
    Points
    61
    Par défaut
    merci. je peux choisir la structure.

    Bien à vous.

  5. #5
    Membre éprouvé
    Inscrit en
    Mars 2006
    Messages
    848
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Mars 2006
    Messages : 848
    Points : 1 078
    Points
    1 078
    Par défaut
    Dans ce cas, tu dois pouvoir utilsier deux listes de CrenauHoraire (par exemple).
    Chaque créneau aurait l'heure de début et l'heure de fin et possèderait une méthode du genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CreneauHoraire substract(CreneauHoraire indisponibilite) {...}
    Cette méthode te transformerais le créneau de disponibilité initial en fonction de l'indisponibilité que tu lui fournis.
    Après, il faut penser à gérer les créneaux devenus vides à causes des indisponibilités.

    L'algo restera le même, boucles imbriquées avec un appel à cette méthode substract.

    Cette solution ne révolutionne pas les choses, elle permet juste de les rendre plus claires (de mon point de vue) et d'éviter des erreurs d'indices lors du parcours des tableaux.

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 52
    Points : 61
    Points
    61
    Par défaut Merci
    Merci pour votre aide ;-)

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

Discussions similaires

  1. filtre sur une colonne date
    Par gares dans le forum Webi
    Réponses: 5
    Dernier message: 07/08/2012, 11h50
  2. Filtre sur la première date du mois suivant!
    Par VBBBA dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 14/06/2007, 20h44
  3. Programmation du filtre sur les Dates
    Par Alpha31 dans le forum Access
    Réponses: 5
    Dernier message: 26/06/2006, 09h21
  4. Problème de filtre sur date avec ADOQuery
    Par lingli dans le forum Bases de données
    Réponses: 12
    Dernier message: 30/04/2006, 15h40
  5. Filtre sur date
    Par MagicManu dans le forum Requêtes
    Réponses: 2
    Dernier message: 20/08/2005, 00h05

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