Accueil
Java Standard Edition
Java EE 5
Visual Basic .Net 2005
Visual C++ .Net 2005
Visual C# .Net 2005
Cours ASP .Net 2.0
Postgresql
Linux
Visual Studio 2008
ASP 3.0 Classique
Cours Javascript - DOM - DHTML
Cours Ajax
VBA
Assembleur
Perl
Membres
L'auteur du site
Nouveautés sur le site
Contacts
Plan du site
Exécution d'un programme
Les archives Jar
Les classes abstraites
Les interfaces
Les tableaux
La généricité
Les énumérations
Les classes internes
Classes anonymes et internes locales
Les threads: généralités
Les threads(2): synchronisation
E/S(1):InputStream et OutputStream
E/S(2):FileInputStream et FileOutputStream
E/S(3):Reader et Writer
E/S(4):FilterInputStream et FilterOutputStream
E/S(5):Les filtres d'octets: PrintStream
E/S(6):Les filtres d'octets: DataInputStream et DataOutputStream
E/S(7):Les filtres d'octets: BufferedInputStream et BufferedOutputStream
E/S(8):Flux de caractères: PrintWriter
E/S(9):Flux de caractères: FilterReader et FilterWriter
E/S(10):Flux de caractères: InputStreamReader, OutputStreamWriter, StreamDecoder, StreamEncoder
E/S(11):Flux de caractères: BufferedReader et BufferedWriter
E/S(12):Flux de caractères: FileReader et FileWriter
La classe String (java.lang)
Les collections: L'interface Collection(java.lang)
Les collections(2): L'interface List(java.util)
Les collections(3): AbstractCollection(java.util)
Les collections(4): AbstractList(java.util)
La bibliothèque Swing en Java
Les bases de données en Java
JDBC ( Java Database Connectivity )
Les interfaces graphiques
Les fichiers de configuration en Java
INSTALLATION JAVA EE 5, JRE 6, ECLIPSE, TOMCAT, ETC SOUS LINUX
INSTALLATION JAVA EE 5, JRE 6, ECLIPSE, TOMCAT, ETC SOUS WINDOWS
Les applications Web en java
Les filtres Java (javax.servlet.Filter)
I Généralités
I.1 Le formulaire principal
I.2 Les objets créés par Visual
I.3 Les variables références
I.4 Le garbage collector
II Créer évènements
II.1 Rappel évènements
II.2 Procédure à suivre
II.2.1 Créer son EventArgs
II.2.2 Créer EmetEvent
II.2.3 Déclarations autres
I Généralités
I.1 Applications winforms
I.2 Applications MFC
I.3 Objets managés ou pas
I.4 Objets non managés
I.5 Objets managés - handle
I.6 Le top-level ^
II Créer évènements
II.1 Rappel évènements
II.2 Procédure à suivre
II.2.1 Créer son EventArgs
II.2.2 Créer EmetEvent
II.2.3 Déclarations autres
I Généralités
I.1 Puissant et Accessible
I.2 Créer ses classes
II Créer évènements
II.1 Rappel évènements
II.2 Procédure à suivre
III Les services Windows
IV Le .net remoting
V Communication Tcp avec TcpClient et TcpListener
II.2.1 Créer son EventArgs
II.2.2 Créer EmetEvent
II.2.3 Déclarations autres
I Généralités
I.1 Un EDI formidable
I.2 Inclure C# ou VB
I.3 L'objet Response
I.4 Les évènements
II ASP .net et les bdd
II.1 Essayer plusieurs fois la requête
I 2.1 Fichiers distincts
I.2.2 Avec la balise script
I.2.3 Inclure réellement
I.2.4 Avec Response.Write()
I.3.1 La méthode Response.Redirect()
I.4.1 Résoudre problème post
Installation Postgre Linux
Cours Postgresql
Le Shell Unix( Linux, Ubuntu)
Les scripts C-Shell
Programmation système Unix
Reseau Linux
Les iptables
Windows Presentation Foundation(WPF)
Le Framework 3.0
Windows Workflow Foundation(WF)
ASP 3.0 Classique
Cours Javascript - DOM - DHTML
Chat Ajax
VBA Excel 2003
Assembleur
Perl
Inscription
Liste membres
Livre d'or
Forum
Accueil
>
Java Standard Edition
>
Les tableaux
____________________________________________________________________________________________________
Connexion
Java - Les tableaux
Sommaire :
I) Définition
II) Déclaration d'un tableau
III) Généralités
IV) Les tableaux à plusieurs dimensions
V) Téléchargement du projet d'exemple
I) Définition
Les tableaux en java sont des objets. C'est comme si nous disposions d'une classe Tableau, qui serait générique, mais qui s'appellerait [] au lieu de Tableau. Et c'est une classe à laquelle on ne peut pas accéder comme les autres.
II) Déclaration d'un tableau
String [] monTab; //Aurait pu s'écrire, si la classe Tableau existait: Tableau
monTab; //On déclare un objet monTab. monTab est à la fois un objet Tableau, et à la fois une référence sur un //tableau de String. Le tableau n'a pas encore été instancié. //on peut écrire aussi String monTab[]; monTab = new String[100]; //Aurait pu s'écrire: monTab = new Tableau(100); ici on utiliserait un constructeur à //un paramètre. //On alloue dynamiquement un objet tableau qui peut contenir 100 objets String
Remarque: on peut écrire aussi
String monTab[];
(les crochets après) pour déclarer un tableau.
En tapant monTab. sous Eclipse, suivi de Ctrl+Espace, on aperçoit toutes les propriétés de la classe Object( ce qui prouve bien que le tableau est un objet), plus la méthode clone(), et l'attribut length.
ON NE PEUT PAS ECRIRE String tab[10]; ==> ERREUR COMPILATION
Ceci est logique: un tableau est bien un objet, on ne peut l'instancier qu'avec l'opérateur new.
III) Généralités
- Comme les tableaux sont alloués dynamiquement, ne serait-ce que par l'équivalence avec un new Tableau(100) ( le 100 ici est un paramètre du constructeur), on peut écrire une expression du genre monTab = new String[monCalcul]; avec monCalcul en int.
- Tous les éléments d'un tableau doivent être du même type. D'où la déclaration String monTab[];
- Les éléments d'un tableau peuvent être d'un type primitif ou objet.
- On définit la taille du tableau quand on le crée. Et on ne pourra plus changer sa taille par la suite.
- Le fait que le tableau soit un objet, vient apporter des fonctionnalités aux tableaux, comme le contrôle d'accès dans les limites du tableau( qui permet d'être sûr qu'on n'écrira pas dans des zones mémoires de manière involontaire).
- Quand on crée un tableau, les éléments sont initialisés à 0 pour les entiers, ou à null pour les objets, ou encore à false pour les booléens.
- Les indexs sont des entiers, et à partir de 0
- On peut initialiser le tableau à l'aide d'une liste statique d'initialisation, comme en langage C. Par exemple:
String [] monTab = {"Un", "Deux", "Trois", "Quatre" }
ou encore:
Personne [] mesPers = { new Homme("julien"), new Femme("Marie"), new Homme("Jean")}
IV) Les tableaux à plusieurs dimensions
Il est possible de faire des tableaux à plusieurs dimensions. Ils sont implémentés sous forme de tableaux de tableaux. On peut utiliser autant de dimensions qu'on veut.
Exemple:
int [][] monTab = new int[5][5];
C'est un tableau de int[], un tableau de tableau d'entier. C'est à dire un tableau contenant des objets qui sont des tableaux d'entiers.
int [][][] monTab;
: ici c'est un tableau contenant des objets qui sont des tableaux de int[], c'est à dire toujours un tableau contenant des objets qui sont des tableaux.
Quelque soit le nombre de dimensions, à partir de deux dimensions, on a toujours un tableau contenant des objets qui sont des tableaux, par conséquent on a toujours un tableau classique.
On peut faire également une liste statique d'initialisation pour les tableaux de tableaux:
int [][] monTab = { {89, 34, 21}, {12, 20}, {6, 2, 48, 98, 12} };
C'est un tableau de tableaux d'entiers. Les tableaux dans le tableau sont de tailles différentes, ce qui est possible: on voit bien ici qu'un tableau multidimensionnel est vraiment un tableau de tableau. Ici, c'est un tableau contenant des objets tableaux. Comme les objets tableaux contiennent leur taille, on peut mettre des tableaux de taille différente.
Autre exemple:
int [][] monTab; monTab = new int[3][]; monTab[0] = new int[12]; monTab[1] = new int[25]; monTab[2] = new int[6];
En faisant monTab = new int[3][];, on crée le tableau monTab, qui sera un tableau de taille 3, et pouvant contenir des tableaux d'entiers. Seul la dimension du tableau principal est nécessaire pour pouvoir le créer!
Puis, dans les lignes suivantes, on crée chaque objet tableau, qui seront dans le tableau principal. Comme vu ci-dessus, les tableaux à l'intérieur du tableau principal, peuvent avoir des longueurs différentes les uns les autres.
V) Téléchargement du projet d'exemple
Projet d'exemple, V1.1
RETOUR HAUT