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 :

Choix de base de données


Sujet :

Collection et Stream Java

  1. #1
    Membre régulier
    Inscrit en
    Février 2005
    Messages
    367
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 367
    Points : 100
    Points
    100
    Par défaut Choix de base de données
    Bonjour,

    je voudrais simuler un réseau qui contient les éléments suivants :

    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
     
     
     
     
    // Une classe Activité qui Neouds ses successeurs
    class Noeuds {
       int durée;
       List<Noeuds> suivants;
     
         public void initialise(int d,  List s){
            this.durée=d;
            this.suivants=s;
        }
     
        public void GénérationAléatoire(int minN, int maxN, int minP, int maxP){
            Random generator = new Random();
            int d = generator.nextInt()*minN+maxN;
     
            int position = generator.nextInt()*nimR+maxR;   // entre min et max
            int s          = generator.nextInt()  // entre 0 et 1
     
    }
    je voudrais en fait
    - générer pour chaque Noeurs un élément aléatoire durée, numéro, une liste contenant un entier suivant (0 et 1) et un entier position (0 et 100)
    -ensuite remplir ces activités dans une base de données (HashSet, haxhMap...)

    mes questions
    1 - quelle base de données seraient la plus performantes sachant que je désire accéder aux élements en parcourant dans les deux sens, ajouter des éléments (À priori un Hashet)...
    2 - comment générer la liste aléatoire suivant à l'intérieur de la classe Neouds

  2. #2
    Membre expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Points : 3 675
    Points
    3 675
    Par défaut
    Citation Envoyé par harris_macken Voir le message
    ...quelle base de données...
    Citation Envoyé par harris_macken Voir le message
    Bonjour,
    (À priori un Hashet)...
    Hum? Base de données c'est pas vraiment pareil que les collections...

    Il te faut quoi? Un moteur de base de données (MySQL, HSQLDB, Oracle, dBase, ...) ou bien un object java qui permet de stocker plusieurs éléments (genre ArrayList, TreeSet, HashSet, etc)

    "Le plug gros problème des citations trouvées sur internet, c'est qu'on ne peut jamais garantir leur authenticité"

    Confucius, 448 av. J-C

  3. #3
    Membre régulier
    Inscrit en
    Février 2005
    Messages
    367
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 367
    Points : 100
    Points
    100
    Par défaut
    oui en fait je veux parler des collections (genre ArrayList, TreeSet, HashSet, etc)

  4. #4
    Membre expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Points : 3 675
    Points
    3 675
    Par défaut
    OK!

    dans ce cas, il faut juste connaître les spécificités de chaque type de collections.

    ArrayList, c'est le plus simple et le plus lent. La recherche se fait par balayage, la complexité est en n^2 (si une recherche parmi 30 éléments prend 3s, alors une recherche parmi 60 éléments en prendra 9s). L'avantage, c'est que tous les objets, qu'ils soient mutables ou non, pourront être insérés dans cette collection. De plus, il faut noter que puisque c'est une Liste (et pas un Set ou une Map), elle accepte les doublons.

    TreeSet, l'avantage c'est que tous les éléments sont triés, qu'on les ajoute ou les enlève, ils seront toujours triés. C'est donc un peu plus rapide (on peut faire des recherches par dichotomie), mais on ne peut pas mettre de doublons (puisque c'est un Set). De plus, faire attention si on a des objets mutables (je ne sais pas comment ça réagit). Complexité (à mon avis, j'ai pas testé): log_2(n)

    HashSet, c'est le plus rapide. Les objets que l'on met dedans doivent tous être immuables et implémenter equals et hashcode correctement (sinon gare aux bugs bizarres!). Les recherches sont de complexité 1 (le plus rapide de tous, quel que soit le nombre d'éléments contenus, l'accès à l'information est constant)

    Après y'en a sûrement des autres, mais ceux-là sont les plus utilisés. HashSet est très rapide mais très contraignant, ArrayList très lent et très flexible...

    "Le plug gros problème des citations trouvées sur internet, c'est qu'on ne peut jamais garantir leur authenticité"

    Confucius, 448 av. J-C

  5. #5
    Membre régulier
    Inscrit en
    Février 2005
    Messages
    367
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 367
    Points : 100
    Points
    100
    Par défaut
    Parfait,

    je vais opté pour le hashSet.
    Ce qui m'emmene à ma 2éme question
    2 - comment générer la liste aléatoire suivant à l'intérieur de la classe Neouds
    est ce fesable ?

  6. #6
    Membre expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Points : 3 675
    Points
    3 675
    Par défaut
    bin là je dois dire que j'ai pas bien compris...
    "Le plug gros problème des citations trouvées sur internet, c'est qu'on ne peut jamais garantir leur authenticité"

    Confucius, 448 av. J-C

  7. #7
    Membre régulier
    Inscrit en
    Février 2005
    Messages
    367
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 367
    Points : 100
    Points
    100
    Par défaut
    en fait j ai ma classe neouds qui contient (int duree, liste suivant)
    liste suivant contient (int s , int position)

    je génère aléatoirement s (entre 0 et 1) (position entre minP et minM)

    ensuite je veux générer plusieurs objets neouds pour les mettre dans la HashSet
    (voir code)

Discussions similaires

  1. Choix de base de données orientée objet
    Par faomayma1980 dans le forum Décisions SGBD
    Réponses: 4
    Dernier message: 22/06/2009, 11h18
  2. Choix de Base de données géographique
    Par sinfos dans le forum Décisions SGBD
    Réponses: 2
    Dernier message: 17/09/2008, 15h03
  3. Comment arbitrer le choix Une base de donnée ou deux ?
    Par medstat2 dans le forum Décisions SGBD
    Réponses: 1
    Dernier message: 28/03/2006, 16h42
  4. [Jeu MultiJoueurs] Quel choix de base de données ?
    Par Torpedox dans le forum Décisions SGBD
    Réponses: 9
    Dernier message: 20/03/2006, 10h23
  5. combobox et me permette le choix des bases de données
    Par crash override dans le forum Composants VCL
    Réponses: 6
    Dernier message: 21/10/2005, 16h28

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