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 :

tableau de références


Sujet :

Collection et Stream Java

  1. #1
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 243
    Points : 13 458
    Points
    13 458
    Par défaut tableau de références
    Bonjour !

    Je sais faire un tableau.
    Je sais ce qu'est une référence.
    Mais je ne sais pas faire un tableau de références.

    Prenons un exemple:
    L'objet "maman" déclare et instancie un tableau de 3 objets "Enfant" pendant un accouchement. Avec un new. enfants=new Enfant[3];
    L'objet "papa" voudrait bien avoir une référence sur 2 de ces objets (le 0 et le 2 sont à lui mais pas le 1) mais pas les ré-instancier! Il va pas faire 2 enfants (un autre new) puis les noyer pour mettre les autres à la place, ni recopier (les 2+2 enfants seront toujours différents). Il ne va pas non plus déclarer un tableau sans préciser la taille car l'affectation retournera une erreur de pointeur null à tous les coups.

    En C++, j'aurais fait un tableau de pointeurs. Mais en java ... je ne vois pas. Et le papa ne veut pas renoncer à sa paternité. La relation qui unit un père à ses enfants est direct. Il ne veut pas passer par la mère systématiquement. Surtout si elle meurt. (C'est pas un beau conte de noël ça ?)


    Que faire pour avoir un tableau de références en java ?
    (je rappelle bien que tout est connu: type de l'objet, nombres d'objets, adresses des objets)
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  2. #2
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    en java, tous les objets sont traités comme des référence. La question ne se pose donc pas. En résumé ton cas serait:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Enfant[] enfantsAMaman = new Enfant[3];
    enfantsAMaman[0] = new Enfant(1);
    enfantsAMaman[1] = new Enfant(2);
    enfantsAMaman[2] = new Enfant(3);
    Enfant[] enfantsAPapa = new Enfant[2];
    enfantsAPapa[0]=enfantsAMaman[0];
    enfantsAPapa[1]=enfantsAMaman[2];

  3. #3
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 243
    Points : 13 458
    Points
    13 458
    Par défaut
    Merci de ta réponse.

    Donc ...
    Ligne 5: tu crées 2 enfants (déclaration et instanciation). Il existe bien physiquement 5 enfants dans la mémoire.
    Ligne 6: tu noies le premier. (ou le 4ème, comme tu veux)
    Ligne 7: tu noies le second. (ou le 5ème, comme tu veux)


    Ai-je bien compris la technique préconisée en java ?
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  4. #4
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 243
    Points : 13 458
    Points
    13 458
    Par défaut
    Non. En fait, c'est bon.

    Ligne 5: on réserve seulement la place des adresses et pas la place des objets.

    Il n'y a pas l'instanciation des objets du tableau. Le new m'a trompé.


    Merci pour ton efficacité.
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 09/10/2007, 10h50
  2. Réponses: 6
    Dernier message: 08/10/2007, 13h50
  3. Réponses: 3
    Dernier message: 19/05/2005, 10h46
  4. Passage d'un tableau par référence?
    Par sebduth dans le forum C
    Réponses: 9
    Dernier message: 16/07/2003, 18h32

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