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 :

List ou ArrayList de short


Sujet :

Collection et Stream Java

  1. #1
    Membre expérimenté Avatar de rtg57
    Homme Profil pro
    Autodidacte
    Inscrit en
    Mars 2006
    Messages
    1 340
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Autodidacte
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 340
    Points : 1 576
    Points
    1 576
    Par défaut List ou ArrayList de short
    Bonjour,

    Ce code fonctionne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    private final List <Object> maListe = new ArrayList<Object>();
    Ce code pose problème::
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    private final List <short> maListe = new ArrayList<short>();
    est-il possible de faire une liste dynamique d'élément de type "short" ou "byte" ?

    Merci et @ bientôt
    @ bientôt...

    Salut & @+ sur 3W!

  2. #2
    Membre confirmé
    Inscrit en
    Juillet 2006
    Messages
    534
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 534
    Points : 562
    Points
    562
    Par défaut
    Il faut utiliser le primitive Short au lieu de short
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    private final List <Short> maListe = new ArrayList<Short>();

  3. #3
    Membre éclairé Avatar de Heimdal
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    549
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 549
    Points : 718
    Points
    718
    Par défaut
    Les génériques ne fonctionnent qu'avec des objets, impossible de travailler avec les types primitifs.
    Par contre en parallèle a été développé l'autoboxing qui permet d'éviter l'appel au contructeur.

    Ainsi tu peux faire des trucs comme ca:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    List<Short> list = new ArrayList<Short>();
    		short a = 4;
    		list.add(a);		
    		for(short s: list) {
    			System.out.println("short: "+s);
    		}

  4. #4
    Membre expérimenté Avatar de rtg57
    Homme Profil pro
    Autodidacte
    Inscrit en
    Mars 2006
    Messages
    1 340
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Autodidacte
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 340
    Points : 1 576
    Points
    1 576
    Par défaut
    Eh ben merci pour cette rapidité de réponse !

    Effectivement, maintenant le code fonctionne

    Du coup faut que je potasse ce que c'est que cette "Primitive"...

    @+
    @ bientôt...

    Salut & @+ sur 3W!

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    342
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 342
    Points : 419
    Points
    419
    Par défaut
    il y a short le type et Short l'Object et les List utilise des Object

  6. #6
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2009
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2009
    Messages : 67
    Points : 67
    Points
    67
    Par défaut
    en effet, ce type de variable ne relevant pas d'un objet , ne peux etre associé à une classe generique.

    tu auras le meme problème avec int (il faudra utiliser la classe Integer)
    mieux vaut prevenir que guérire

    edit: urgh, 3 messages posté le temps que je poste le mien ! ^^

  7. #7
    Membre émérite
    Avatar de polymorphisme
    Homme Profil pro
    Publishing
    Inscrit en
    Octobre 2009
    Messages
    1 460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Publishing
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2009
    Messages : 1 460
    Points : 2 371
    Points
    2 371
    Par défaut
    Bonjour,

    tu as d'une part les types natifs (int, short, float, ...) et d'autre part les types de classes (Int, Short, Float, ...).

    Les collections, dont List et Array, ne traitent que des Object.
    Il est donc nécessaire d'utiliser le constructeur Short(short value) ou Short(String s) pour obtenir des objets.

    private final List <Object> maListe = new ArrayList<Object>();

    Enfin, la classe abstraite java.lang.Number encapsule les classes Int, Short, Float. Elle contient des méthodes de conversion des objets vers les types natifs.
    Article : Installation de Cocoon
    Je ne réponds pas aux MP à caractère technique.

  8. #8
    Membre expérimenté Avatar de rtg57
    Homme Profil pro
    Autodidacte
    Inscrit en
    Mars 2006
    Messages
    1 340
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Autodidacte
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 340
    Points : 1 576
    Points
    1 576
    Par défaut
    Bonjour polymorphisme,

    merci pour cette précision mais à ce sujet, la syntaxe:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    private final List <Object> maListe = new ArrayList<Object>();
    n'est apparemment pas bien digérée.
    En effet j'ai un message d'erreur concernant List
    "Le type List n'est pas générique. Vous ne pouvez pas le définir avec les arguments <Object>"

    Qu'est ce qui ne convient pas ?
    (Pour info, je programme avec ECLIPSE 3.4)
    @ bientôt...

    Salut & @+ sur 3W!

  9. #9
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 310
    Points : 9 522
    Points
    9 522
    Billets dans le blog
    1
    Par défaut
    Regarde au niveau de l'import, tu références peut-être autre chose que java.util.List.

    Pour java.util.List, on peut très bien préciser <Object> comme type, même si ça n'a pas beaucoup d'intérêt (autre que supprimer le warning sur les types génériques)
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  10. #10
    Membre expérimenté Avatar de rtg57
    Homme Profil pro
    Autodidacte
    Inscrit en
    Mars 2006
    Messages
    1 340
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Autodidacte
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 340
    Points : 1 576
    Points
    1 576
    Par défaut
    Bien vu OButterlin,

    ECLIPSE avait décidé d'importer import java.awt.List;
    En modifiant cet import en import java.util.List;, tout va mieux

    Merci et @ bientôt
    @ bientôt...

    Salut & @+ sur 3W!

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

Discussions similaires

  1. Creation arrays list of arraylist
    Par jimharley22 dans le forum Collection et Stream
    Réponses: 5
    Dernier message: 04/05/2014, 19h19
  2. List<Object> list = new ArrayList<Object>();
    Par philippe6 dans le forum Collection et Stream
    Réponses: 9
    Dernier message: 10/02/2013, 16h14
  3. Réponses: 2
    Dernier message: 16/01/2012, 09h28
  4. [JAXB] Desérializer du xml vers une liste ou arraylist
    Par jamelledine_med dans le forum Format d'échange (XML, JSON...)
    Réponses: 1
    Dernier message: 31/05/2009, 20h17
  5. pb de types avec List et ArrayList
    Par sydius dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 17/07/2008, 14h08

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