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 :

que choisir (tableau avec java)


Sujet :

Collection et Stream Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Avril 2006
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 12
    Par défaut que choisir (tableau avec java)
    salut,
    je veux manipuler un tableau d'objet(parcour et exploitation du contenue) mais mon problème est que les tableaux en java sont lents à manipuler .
    alors quoi utiliser;
    Je ne suis pas compétent en java; mais j'ai entendu parlé des vector, index, container... mais je ne sais pas quoi choisir?
    merci.

  2. #2
    Membre éprouvé
    Avatar de mavina
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2004
    Messages
    1 812
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Chine

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 812
    Par défaut
    Tes objets ont tous le même type ?
    Ton tableau a une taille fixe ?
    Explicite un peu ton problème

  3. #3
    Membre averti
    Inscrit en
    Avril 2006
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 12
    Par défaut taille
    le tableau contiendra un même type d'objet; avec la taille inconnue: le nombre d'objets n'étant pas connu.

  4. #4
    Membre éprouvé
    Inscrit en
    Mai 2003
    Messages
    103
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 103
    Par défaut
    Je sais pas si les tableaux sont lents en java. Personellement, je ne me soucie pas des performances dès le départ et il m'est rarement( pour ne pas dire jamais enfin de mémoire ) arrivé à réécrire du code pur java pour améliorer les performances.

    Bon sinon,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     List maListeDObjets = new ArrayList();
     
    maListeDObjets.add ( monObjet ) ;
    A+

  5. #5
    Membre éprouvé
    Avatar de mavina
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2004
    Messages
    1 812
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Chine

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 812
    Par défaut
    et ne pas oublier, lorsque tu accèdes à un élément, de caster selon le type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Type monObjetTemporaire=(Type)monArrayList.get(x);
    Referes toi à la faq

    mavina

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 109
    Par défaut
    AMHA une collection , qui est un objet complexe et qui en plus nécessite des casts sera nécessairement moins performante qu'un tableau simple.

  7. #7
    Membre éprouvé
    Avatar de mavina
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2004
    Messages
    1 812
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Chine

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 812
    Par défaut
    Citation Envoyé par MangeurVasqué
    AMHA une collection , qui est un objet complexe et qui en plus nécessite des casts sera nécessairement moins performante qu'un tableau simple.
    Citation Envoyé par FAQ
    Complexité : Les opérations size, isEmpty, get, set, iterator sont exécutées en temps constant.
    Les opérations d'ajout/suppression sont exécutées en temps constant amorti (les ajouts/suppressions en fin de liste sont plus rapides).
    Le probleme du tableau simple c'est qu'il ne pourra pas agrandir son tableau sans perdre énormément de temps, le arraylist lui permet en temps constant de le faire, et les ajouts sont en temps amortis, ce qui n'est pas un détail ...

  8. #8
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Et pour les cast, java 1.5 permet de s'en séparer en utilisant les generics
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    ArrayList<String> toto = new ArrayList<String>();
    toto.add("machin");
    String bidule = toto.get(0);

  9. #9
    Expert éminent
    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
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par MangeurVasqué
    AMHA une collection , qui est un objet complexe et qui en plus nécessite des casts sera nécessairement moins performante qu'un tableau simple.
    Les ArrayList utilisent un tableau en interne. Ce dernier est redimensionné si besoin.

    Si la taille de ton tableau n'est pas connu à l'avance, il est grandement préférable d'utiliser ArrayList, plutôt que de recoder des méthodes complexes de gestion du tableau, ce qui revient à peu près au même au niveau de la complexité (la généricité en moins si tu type fortement ton tableau)...

    Citation Envoyé par sinok
    Et pour les cast, java 1.5 permet de s'en séparer en utilisant les generics
    On ne s'en sépare pas totalement, car s'il sont cachés dans le code source, ils sont toujours présent à l'exécution...


    a++

  10. #10
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    J'en étais bien conscient

  11. #11
    Membre averti
    Inscrit en
    Avril 2006
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 12
    Par défaut
    Citation Envoyé par ohnerom
    List maListeDObjets = new ArrayList();

    maListeDObjetc.add ( monObjet ) ;


    A+
    ce code ne marche pas. Je l'ai copié et collé (jbuilder 2005 entreprise) mais comment ça se fait
    type= et constructeur ? J'ai pas bien compris?

  12. #12
    Expert éminent
    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
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par walid2012
    ce code ne marche pas je l'ai copié et collé (jbuilder 2005 entreprise)
    Et pourant il marche !!!

    Maintenant si tu ne nous dis pas quelle erreur tu obtiens on ne pourra pas avancer...


    Citation Envoyé par walid2012
    mais comment ca se fait type= List et constructeur ArrayListe()? g pas bien compris?
    C'est du Polymorphisme !
    Tu devrais revoir tes cours de Java et de POO c'est une notion de base

    a++

  13. #13
    Membre averti
    Inscrit en
    Avril 2006
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 12
    Par défaut erreur
    "ShapeMover.java" : impossible de trouver le symbole ; symbole : classe ArrayList, emplacement : classe editeur.ShapeMover.MyCanvas en ligne 163, colonne 35

  14. #14
    Expert éminent
    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
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par walid2012
    "ShapeMover.java" : impossible de trouver le symbole ; symbole : classe ArrayList, emplacement : classe editeur.ShapeMover.MyCanvas en ligne 163, colonne 35
    tu n'as pas fait les import des classes...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    import java.util.List;
    import java.util.ArrayList;
    a++

  15. #15
    Membre confirmé Avatar de tnodev
    Profil pro
    SSSSS
    Inscrit en
    Mai 2005
    Messages
    182
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : SSSSS

    Informations forums :
    Inscription : Mai 2005
    Messages : 182
    Par défaut
    Citation Envoyé par adiGuba
    Et pourant il marche !!!

    mais comment ca se fait type= List et constructeur ArrayListe()? g pas bien compris?
    C'est du Polymorphisme !
    Tu devrais revoir tes cours de Java et de POO c'est une notion de base

    a++
    Ce n'est pas du polymorphisme, c'est juste que la classe ArrayList implémente l'interface List.

  16. #16
    Membre éprouvé
    Avatar de mavina
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2004
    Messages
    1 812
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Chine

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 812
    Par défaut
    Citation Envoyé par tnodev
    Ce n'est pas du polymorphisme, c'est juste que la classe ArrayList implémente l'interface List.
    Le fait de pouvoir faire List l=new ArrayList(); s'appelle du polymorphisme, revois tes cours
    ArrayList implémente l'interface List, et le fait de faire List l= new ArrayList(), c'est comme si on avait un tableau de list et qu'on appelait une fonction (ici constructeur), la JVM se charge d'aller chercher la bonne dans la bonne classe ...
    Eh oui, le constructeur est une procédure, le polymorphisme est présent ici aussi

Discussions similaires

  1. Que choisir : PHP ou Java ?
    Par Community Management dans le forum Général Conception Web
    Réponses: 200
    Dernier message: 13/06/2014, 17h00
  2. Que choisir : PHP versus Java ?
    Par Sniper37 dans le forum Général Conception Web
    Réponses: 164
    Dernier message: 28/04/2009, 16h50
  3. Que choisir ? Delphi ou Java ?
    Par Jean-Yves dans le forum Débats sur le développement - Le Best Of
    Réponses: 89
    Dernier message: 19/04/2008, 15h40
  4. Que choisir C++ ou Java pour de petites applications ?
    Par kedare dans le forum Langages de programmation
    Réponses: 4
    Dernier message: 23/02/2006, 22h48
  5. [Collections] Que choisir (tableau ou Map)
    Par thomine dans le forum Collection et Stream
    Réponses: 6
    Dernier message: 22/06/2005, 16h25

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