Rechercher : dans
Par :

Comment déclarer un tableau statique en java

Dernière réponse le 13 mar 2008 à 19:09:27 amaradelll, le 12 mar 2008 à 21:55:01 
 Signaler ce message aux modérateurs

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.

Configuration: Windows XP
Internet Explorer 7.0

Meilleures réponses pour « comment déclarer un tableau statique en java » dans :
Inverser les éléments d'un tableau -Récursivité- VoirVoici une procédure récursive qui permet d’inverser les éléments d’une partie d’un tableau compris entre la position p et n : Procedure Inverser (Var t : Tab; p, n : Integer); Var aux : Real; Begin If p < n Then ...
Le mot-clé static ou les attributs et méthodes de classe en POO Voir(NOTE: Cet article explique la signification du mot-clé static au sein d'une classe. La signification de "static" en C n'a par exemple rien à voir.) Vous êtes débutant en programmation orientée objet. En Java, en C++...ou que sais-je encore,...
Java: Les méthodes VoirLa notion de fonction et de méthode On appelle fonction un sous-programme qui permet d'effectuer un ensemble d'instruction par simple appel de la fonction dans le corps du programme principal. Les fonctions permettent d'exécuter dans plusieurs...
Java: les variables VoirLe concept de variable Une variable est un objet repéré par son nom, pouvant contenir des données, qui pourront être modifiées lors de l'exécution du programme. Les variables en langage Java sont typées, c'est-à-dire que les données contenues dans...
Javascript - Les tableaux VoirIntroduction à la notion de tableau Les variables de Javascript ne permettent de stocker qu'une seule donnée à la fois. Or, étant donné qu'il est souvent utile de manipuler de nombreuses données, le concept de variable se révéle parfois...

1

kilian, le 12 mar 2008 à 23:50:17

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};

Répondre à kilian

2

amaradelll, le 13 mar 2008 à 17:21:43

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.

Répondre à amaradelll

3

ray_fab, le 13 mar 2008 à 17:32:00

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!

Répondre à ray_fab

4

kilian, le 13 mar 2008 à 17:36:23

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];

Répondre à kilian

5

 amaradelll, le 13 mar 2008 à 19:09:27

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];

Répondre à amaradelll