Comment déclarer un tableau statique en java [Résolu]

Comment déclarer un tableau statique en java Comment utiliser un tableau statique en JAVA (Résolu) » Forum - Java [java] Tableaux statiques » Forum - Programmation Déclaration des tableaux en java » Forum - Java Tableau de string en java » Forum - Java Asp déclaration de tableau (Résolu) » Forum - Programmation

Bonjour tout le monde,

Voila je voudrais savoir comment déclarer en Java un tableau statique sans initialisation et un tableau dynamique?.

Moi ce que je sais, c'est que : en C, pour déclarer un tableau de 5 caractères T statique on écrit comme suit : char T[5], et un tableau dynamique en utilisant la fonction "malloc".

Or en java ce n'est pas la même chose.

Alors si quelqu'un peut me dire comment déclarer un tableau statique (sans initialisation) et dynamique (comment faire l'allocation en Java?).

Merci d'avance.

Forum

Comment déclarer un tableau statique en java Comment utiliser un tableau statique en JAVA (Résolu) » Forum - Java [java] Tableaux statiques » Forum - Programmation Déclaration des tableaux en java » Forum - Java Tableau de string en java » Forum - Java Asp déclaration de tableau (Résolu) » Forum - Programmation

Web: www.shapebootstrap.net

9 réponses

Marsh

NOVEMBER 9, 2013 AT 9:15 PM

Si justement c'est le new qui alloue l'espace.
Quand tu fais :
int tab[];

Tu crées un objet qui n'a pas été alloué. Tu peux voir ça comme un pointeur, au fnal c'est pas si différent. Et là le pointeur tab ne pointe sur rien.

Et après, l'opérateur new va instancier l'objet "tableau d'entier de n cases". Ca c'est du vocabulaire Java, mais au final ce qu'il se passe, c'est la même chose qu'un malloc. new va allouer de l'espace mémoire et tab pointera vers cet espace:
tab = new int[50];

Merci kilian 16

Avec quelques mots c'est encore mieux Ajouter un commentaire

CCM a aidé 22727 internautes ce mois-ci

Reply
réponses:
  • auteur

    ça ne marche pas pour moi.

Marsh

NOVEMBER 9, 2013 AT 9:15 PM

Salut,

Ya pas moyen de le faire de manière statique en Java.
Il faut toujours allouer de la place avec l'opérateur new.

Ou à la rigueur comme ça:

int tab[] = {0,1,2};

Reply

Marsh

NOVEMBER 9, 2013 AT 9:15 PM

Bonjour kilian.

Merci pour l'éclaircissement, mais...

Si j'ai bien compris, le new va créer un pointeur sur le type, mais comment faire l'allocation elle même?, par exemple pour allouer 500 cases vide (sans initialisation). en utilisant le C c'est le "malloc". Et en Java?!!!.

Merci.

Reply
réponses:
  • auteur

    ouiii good

Marsh

NOVEMBER 9, 2013 AT 9:15 PM

Bonjour,
Le plus simple est d'utiliser un vecteur il est plus dynamique on peux à tout moment changer sa taille...
Mais tu peux bien créer un tableau comme ceci:
int tab[];sans utiliser le new mais lors de son utilisation il faut obligatoirement allouer avec le new donc impossible de créer un tableau en java sans le new.
Bon courage!

Reply

Marsh

NOVEMBER 9, 2013 AT 9:15 PM

Merci a vous mes amis (kilian et ray_fab), maintenant je peux continuer à programmer.

Merci infiniment.

Récapitulation :

Donc pour allouer a un tableau T un espace de 100 (Par exemple), on procéde de cette manière :

1. Déclarer le tableau T comme ceci : type T[];

2. Lui allouer un espace de N comme suit : T=new int[100];

Reply
réponses:
  • auteur

    Salut,

    Ou en une seule ligne et en respectant les conventions qui veulent que le nom d'un tableau commence par une minuscule:

    int[] t = new int[100];
    ou bien:
    int t[] = new int [100];

    Noter que les 100 éléments étant des int seront initialisés à zero, des String seraient initialisés à null etc...

    Mais, que comme indiqué par kilian, procéder comme ci-dessous pour initialiser le tableau avec des valeurs "choisies" :
    int tab[] = {0,1,2}; et on obtiendra un tableau d'int le taille 3 et dont les 3 éléments seront initialisés, le premier à zéro, le second à 1 et le troisième à 2 (et sans utiliser new).

    Dan

  • auteur

    ca ve dire quoi public etudiant [] amis;

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed