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

  1. #1
    Futur Membre du Club
    Inscrit en
    Avril 2006
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 12
    Points : 7
    Points
    7
    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 émérite
    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 : 38
    Localisation : Chine

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

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 812
    Points : 2 411
    Points
    2 411
    Par défaut
    Tes objets ont tous le même type ?
    Ton tableau a une taille fixe ?
    Explicite un peu ton problème
    Développeur Java / Flex à Shanghai, Chine
    mes publications
    Mon dernier tutoriel : Messages Quit IRC : explications

    La rubrique IRC recrute des redacteurs : contactez moi

    Ce flim n'est pas un flim sur le cyclimse. Merci de votre compréhension.[/SIZE]

  3. #3
    Futur Membre du Club
    Inscrit en
    Avril 2006
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 12
    Points : 7
    Points
    7
    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 habitué
    Inscrit en
    Mai 2003
    Messages
    103
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 103
    Points : 128
    Points
    128
    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 émérite
    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 : 38
    Localisation : Chine

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

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 812
    Points : 2 411
    Points
    2 411
    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
    Développeur Java / Flex à Shanghai, Chine
    mes publications
    Mon dernier tutoriel : Messages Quit IRC : explications

    La rubrique IRC recrute des redacteurs : contactez moi

    Ce flim n'est pas un flim sur le cyclimse. Merci de votre compréhension.[/SIZE]

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

    Informations forums :
    Inscription : Juin 2005
    Messages : 109
    Points : 122
    Points
    122
    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 émérite
    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 : 38
    Localisation : Chine

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

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 812
    Points : 2 411
    Points
    2 411
    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 ...
    Développeur Java / Flex à Shanghai, Chine
    mes publications
    Mon dernier tutoriel : Messages Quit IRC : explications

    La rubrique IRC recrute des redacteurs : contactez moi

    Ce flim n'est pas un flim sur le cyclimse. Merci de votre compréhension.[/SIZE]

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

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    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);
    Hey, this is mine. That's mine. All this is mine. I'm claiming all this as mine. Except that bit. I don't want that bit. But all the rest of this is mine. Hey, this has been a really good day. I've eaten five times, I've slept six times, and I've made a lot of things mine. Tomorrow, I'm gonna see if I can't have sex with something.

  9. #9
    Expert éminent sénior
    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
    Points : 23 190
    Points
    23 190
    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 éminent sénior
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    J'en étais bien conscient
    Hey, this is mine. That's mine. All this is mine. I'm claiming all this as mine. Except that bit. I don't want that bit. But all the rest of this is mine. Hey, this has been a really good day. I've eaten five times, I've slept six times, and I've made a lot of things mine. Tomorrow, I'm gonna see if I can't have sex with something.

  11. #11
    Futur Membre du Club
    Inscrit en
    Avril 2006
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 12
    Points : 7
    Points
    7
    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 sénior
    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
    Points : 23 190
    Points
    23 190
    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
    Futur Membre du Club
    Inscrit en
    Avril 2006
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 12
    Points : 7
    Points
    7
    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 sénior
    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
    Points : 23 190
    Points
    23 190
    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
    Futur Membre du Club
    Inscrit en
    Avril 2006
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 12
    Points : 7
    Points
    7
    Par défaut merci
    pardon adiGuba pour mes bêtises.
    De plus, je ne suis pas competant en java mais j'ai une idée générale et j'ai besoin du java juste pour une application!

    merci

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

    Informations professionnelles :
    Activité : SSSSS

    Informations forums :
    Inscription : Mai 2005
    Messages : 182
    Points : 231
    Points
    231
    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.

  17. #17
    Membre émérite
    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 : 38
    Localisation : Chine

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

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 812
    Points : 2 411
    Points
    2 411
    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
    Développeur Java / Flex à Shanghai, Chine
    mes publications
    Mon dernier tutoriel : Messages Quit IRC : explications

    La rubrique IRC recrute des redacteurs : contactez moi

    Ce flim n'est pas un flim sur le cyclimse. Merci de votre compréhension.[/SIZE]

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

    Informations professionnelles :
    Activité : SSSSS

    Informations forums :
    Inscription : Mai 2005
    Messages : 182
    Points : 231
    Points
    231
    Par défaut
    Citation Envoyé par mavina
    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
    Nous sommes tout à fait d'accord sur la définition du polymorphisme. Cependant dans une interface, il n'y a pas de constucteur. Donc je ne vois pas pourquoi l'on parle de polymorphisme dans le cadre de l'instanciation d'une classe qui implémente une interface (belle phrase, non...).

  19. #19
    Expert éminent sénior
    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
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par tnodev
    Cependant dans une interface, il n'y a pas de constucteur. Donc je ne vois pas pourquoi l'on parle de polymorphisme dans le cadre de l'instanciation d'une classe qui implémente une interface (belle phrase, non...).
    Cela n'empêche pas le polymorphisme (cf paragraphe suivant : http://java.developpez.com/livres/pe...&page=1#01.009 )
    Après tout une interface n'est rien d'autre qu'une classe 100% abstraite...

    a++

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

    Informations professionnelles :
    Activité : SSSSS

    Informations forums :
    Inscription : Mai 2005
    Messages : 182
    Points : 231
    Points
    231
    Par défaut
    Un général 8 étoiles arrive, ça ne rigole plus...

    Permettez moi d'insister, le polymorphisme, pour moi, c'est la capacité qu'une méthode d'une classe fille ait un comportement différent de celle de sa classe mère... ouf !
    Or, dans ce cas précis, l'interface List ne décrit aucun comportement, ni sur les méthodes, ni sur le constructeur, donc encore une fois, je ne comprend pas pourquoi parle t-on de polymorphisme.

    Ce pourrait être un bô sujet de dissertation, non ?

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