Into To Java
Into To Java
Introduction à Java
Table des matières
Qu'est-ce que Java ? ...............................................................................................................................3
Prérequis essentiels pour le développement Java ................................................................................3
Premier Exemple ......................................................................................................................................4
Règles de nommages en java .................................................................................................................4
Instructions en java ................................................................................................................................5
Affichage sur l'écran ..................................................................................................................... 5
Commentaires .........................................................................................................................................5
Commentaire sur une seule ligne ......................................................................................................5
Commentaire sur une plusieurs lignes ..............................................................................................5
Variables en Java....................................................................................................................................5
Déclarer une variable .........................................................................................................................6
Principaux types primitifs en Java :....................................................................................................6
Opérations sur les variables numériques en Java :............................................................................7
Les "wrappers" (emballages) des types primitifs ..............................................................................7
Chaine de caracteres ..............................................................................................................................9
Lecture au clavier .................................................................................................................................14
Structures conditionnelles en Java......................................................................................................16
Instruction if.................................................................................................................................... 16
Imbrication des instructions if ........................................................................................................ 17
Instruction switch ........................................................................................................................... 17
Structure répétitive ..............................................................................................................................19
while................................................................................................................................................ 19
do while .......................................................................................................................................... 19
for.................................................................................................................................................... 20
Opérateurs de comparaison ................................................................................................................20
Opérateurs logiques .............................................................................................................................21
Les Constantes en Java ........................................................................................................................24
Déclaration de Constantes .............................................................................................................. 24
Avantages des Constantes .............................................................................................................. 24
Utilisation des Constantes .............................................................................................................. 25
Conventions de Nommage ............................................................................................................. 25
Méthodes statiques ...............................................................................................................................25
Variables statiques ...............................................................................................................................28
Tableaux ................................................................................................................................................30
Déclaration de Variables de Tableau : ............................................................................................ 30
Création de Tableaux : .................................................................................................................... 31
Les boucles foreach :....................................................................................................................... 32
2
Premier Exemple
- Pour commencer, installez le JDK sur votre système.
- Ensuite, créez un fichier nommé Test.java et ajoutez-y un code simple, par exemple :
public class Test {
public static void main(String[] args) {
System.out.println("Hello, world!");
}
}
javac Test.java
- Si plusieurs versions du JDK sont installées sur votre machine, spécifiez la version en utilisant :
javac -target 8 -version 8 Test.java
- Enfin, pour exécuter le programme et afficher "Hello, world!" dans la console, utilisez la commande
: java Test
Instructions en java
● Toute instruction en Java est se termine par un point-virgule (;).
● Bien qu'il soit possible d'écrire plusieurs instructions sur une même ligne, cette pratique est
déconseillée en raison de son impact sur la lisibilité et la maintenance du code.
● La classe System dispose de deux objets pour les opérations d'entrée/sortie (in/out).
● L'objet out propose différentes méthodes d'affichage comme print() et println().
Commentaires
Commentaire sur une seule ligne
// commentaire
Variables en Java
Une variable est un élément crucial en programmation Java. Elle agit comme un pointeur vers une
zone de mémoire où l'on peut stocker une ou plusieurs données. Ces données peuvent varier en
fonction du type de variable déclarée.
Java étant un langage de programmation fortement typé, il est impératif de spécifier le type de chaque
variable lors de sa déclaration. Une fois déclarée, une variable peut prendre différentes valeurs, mais
elle ne peut pas changer de type tout au long du programme.
Les règles de nommage des variables en Java sont cruciales pour assurer la clarté et la cohérence du
code. Voici les principales directives à suivre :
● Utilisez le CamelCase pour nommer vos variables.
● Le premier caractère doit être une lettre (ni un chiffre ni un $).
● Les espaces ne sont pas autorisés dans les noms de variable.
● Depuis Java 9, l'utilisation de l'underscore (_) comme nom de variable n'est plus autorisée.
● Il est recommandé de choisir des noms de variables en rapport avec le contexte de leur
utilisation.
● Évitez de choisir des mots-clés du langage Java ou d'anciens mots-clés obsolètes tels que
"goto" ou "const". Une liste complète des mots-clés du langage Java est disponible
[ici](https://docs.oracle.com/javase/tutorial/java/nutsandbolts/_keywords.html).
6
● Les noms de variables sont sensibles à la casse, ce qui signifie que "variable" et "Variable"
sont considérés comme deux noms de variables différents.
Pour les variables numériques (int, float...), voici les opérations disponibles :
● = : utilisé pour l'affectation de valeur à une variable.
● + : utilisé pour l'addition.
- : utilisé pour la soustraction.
● : utilisé pour la multiplication.
● / : utilisé pour la division.
● % : utilisé pour obtenir le reste de la division (modulo).
Quelques raccourcis
● i = i + 1 ⇒ i++;
● i = i - 1 ⇒ i--;
● i = i + 2 ⇒ i += 2;
7
● i = i - 2 ⇒ i -= 2
Exemple de post-incrémentation
int i = 2;
int j = i++;
System.out.println(i); // affiche 3
System.out.println(j); // affiche 2
Exemple de pre-incrémentation
int i = 2;
int j = ++i;
System.out.println(i); // affiche 3
System.out.println(j); // affiche 3
Les types primitifs consomment moins de mémoire, tandis que les types objets fournissent un éventail
de méthodes pour manipuler les valeurs : conversion, comptage du nombre de caractères, etc.
Chaque classe wrapper inclut une méthode (TypeObjet.parseTypeSimple(string)) permettant de
convertir une chaîne de caractères en un type primitif de cette classe.
public class Main {
public static void main(String[] args) {
// Exemple avec Integer.parseInt() pour convertir une chaîne en entier
String strNumber = "123";
int number = Integer.parseInt(strNumber);
System.out.println("Le nombre converti en entier est : " + number);
// Exemple avec Double.parseDouble() pour convertir une chaîne en nombre à virgule flottante
String strDouble = "3.14";
double doubleValue = Double.parseDouble(strDouble);
System.out.println("Le nombre converti en double est : " + doubleValue);
}
}
Il n'est pas nécessaire de convertir d'un type simple vers son wrapper (ou inversement) :
Integer j = 2;
int k = j;
System.out.println(k); // affiche 2
int l = 3;
Integer m = l;
System.out.println(m); // affiche 3
}
}
Chaine de caracteres
Une chaîne de caractères, en programmation, est une séquence de caractères regroupés ensemble. En
Java, une chaîne de caractères est représentée par le type de données String et est utilisée pour stocker
et manipuler du texte. Les caractères dans une chaîne de caractères peuvent être des lettres, des
chiffres, des symboles ou des espaces. Les chaînes de caractères sont souvent utilisées pour
représenter des données textuelles telles que des noms, des messages, des descriptions, etc.
Un exemple d'utilisation d'une chaîne de caractères serait de déclarer une variable string de type
String, puis de lui assigner la valeur "bonjour". Ensuite, en utilisant la méthode println de l'objet
System.out, on peut afficher la valeur de la chaîne, qui dans ce cas sera "bonjour".
Il est également possible d'initialiser une chaîne de caractères lors de sa déclaration en utilisant le
constructeur de la classe String. Par exemple, en écrivant String string = new String("bonjour"); ,
nous obtenons le même résultat : la chaîne "bonjour" est affectée à la variable string et affichée ensuite
avec la méthode println.
Une autre manière de créer et d'afficher une chaîne de caractères est de l'initialiser directement lors de
sa déclaration, sans utiliser explicitement le constructeur. Par exemple, String string = "bonjour";
crée une chaîne de caractères contenant "bonjour", qui est ensuite affichée de la même manière avec
println.
Il est à noter que toute chaîne de caractères doit être délimitée par des guillemets ("contenu").
Manipulation des chaînes de caractères avec l'opérateur + en Java
Pour concaténer deux chaînes de caractères, nous utilisons l'opérateur +. Par exemple, si nous avons
deux variables string et string2 contenant respectivement "bon" et "jour", en écrivant
`System.out.println(string + string2);`, nous obtiendrons "bonjour" affiché à l'écran, car les deux
chaînes sont concaténées.
public class Main {
public static void main(String[] args) {
// Exemple d'utilisation d'une chaîne de caractères
String string = new String();
string = "bonjour";
System.out.println(string); // affiche bonjour
System.out.println(Character.toUpperCase('a')); // affiche A
- Vous pouvez remplacer une sous-chaîne par une autre dans une chaîne donnée en utilisant la
méthode replace(). Par exemple :
int y = 3;
String chaine = ((Integer) y).toString();
System.out.println(chaine); // affiche 3
int z = 4;
String str = Integer.toString(z);
System.out.println(str); // affiche 4
int t = 5;
String s = String.valueOf(t);
System.out.println(s); // affiche 5
int u = 6;
String s = "" + u;
System.out.println(s); // affiche 6
import java.util.Arrays;
12
int z = 4;
String str = Integer.toString(z);
System.out.println(str); // affiche 4
int t = 5;
String s = String.valueOf(t);
System.out.println(s); // affiche 5
int u = 6;
String s2 = "" + u;
System.out.println(s2); // affiche 6
}
}
Il est également possible d'utiliser les méthodes statiques de la classe Math pour effectuer des
opérations mathématiques courantes :
// Exemples d'arrondis
System.out.println("\nExemples d'arrondis :");
System.out.println("Arrondi de 1.9 : " + Math.round(1.9)); // affiche 2
System.out.println("Arrondi de 1.5 : " + Math.round(1.5)); // affiche 2
System.out.println("Arrondi de 1.4 : " + Math.round(1.4)); // affiche 1
System.out.println("Plafond de 1.9 : " + Math.ceil(1.9)); // affiche 2.0
System.out.println("Plafond de 1.5 : " + Math.ceil(1.5)); // affiche 2.0
System.out.println("Plafond de 1.4 : " + Math.ceil(1.4)); // affiche 2.0
System.out.println("Plancher de 1.9 : " + Math.floor(1.9)); // affiche 1.0
System.out.println("Plancher de 1.5 : " + Math.floor(1.5)); // affiche 1.0
System.out.println("Plancher de 1.4 : " + Math.floor(1.4)); // affiche 1.0
}
}
Depuis Java 1.5, il est possible d'importer statiquement la classe Math pour utiliser ses méthodes sans préfixe :
Cela permet d'utiliser directement les méthodes de la classe Math sans spécifier le préfixe "Math.".
Lecture au clavier
Pour lire une valeur saisie par l'utilisateur dans la console, on utilise la classe Scanner. Il est nécessaire
de spécifier le type de la valeur à récupérer.
Pour instancier la classe Scanner, on crée une nouvelle instance de Scanner en utilisant System.in
comme argument :
14
Le code suivant déclenche une exception car on ne peut pas affecter la chaîne "tout" à un entier :
Scanner scanner = new Scanner(System.in);
// Si on saisit "bonjour tout le monde"
String string = scanner.next();
int v = scanner.nextInt();
System.out.println(v);
Il n'existe pas de méthode spécifique pour les caractères, mais on peut faire :
Scanner scanner = new Scanner(System.in);
String string = scanner.next();
char c = scanner.next().charAt(0);
System.out.println(c);
import java.util.Scanner;
// Fermeture du scanner
scanner.close();
}
}
● sélection
• instructions if
• instructions switch
● itération
• boucles while (non bornées)
• boucles for
• itération sur des collections
● autres
• appel/retour
• exceptions
• continuations
Un bloc d’instructions est une suite d’instructions délimitées par des accolades {}.
{
/* suite d’instructions en tout genre */
}
Instruction if
if (expression)
{
/* bloc d’instructions 1 */
}
else
{
/* bloc d’instructions 2 */
}
Si l'expression est vraie, le bloc d’instructions 1 est exécuté, sinon le bloc d’instructions 2 est exécuté.
import java.util.Scanner;
y = scanner.nextFloat();
if (x < y)
System.out.println("max = " + y);
else
System.out.println("max = " + x);
if (a <= b) {
if (b <= c) {
System.out.println("ordonné");
} else {
System.out.println("non ordonné");
}
} else {
System.out.println("non ordonné");
}
}
}
Ce code vérifie d'abord si a est inférieur ou égal à b. Si c'est le cas, il vérifie ensuite si b est inférieur
ou égal à c. Si ces conditions sont toutes deux vraies, il affiche "ordonné". Sinon, il affiche "non
ordonné".
Instruction switch
Le switch est une structure multibranchement dans laquelle une valeur est comparée à plusieurs
constantes.
switch (expression) {
case exp1:
BlocInstruction1;
break;
case exp2:
BlocInstruction2;
break;
18
.
.
.
case expN:
BlocInstructionN;
break;
default:
BlocInstruction;
}
Remarques :
- L’instruction break est nécessaire pour un choix exclusif.
- L’utilisation de default est optionnelle.
- Tous les cas doivent être différents.
- Les expi doivent être des entiers (ie de type int ou char).
import java.util.Scanner;
Structure répétitive
while
while (expression) {
/* bloc d’instructions */
}
Le bloc d’instructions est exécuté tant que l'expression est vraie.
import java.util.Scanner;
do while
do {
/* bloc d’instructions */
} while (expression);
Exemple :
import java.util.Scanner;
scanner.close();
}
}
for
Opérateurs de comparaison
Les opérateurs de comparaison sont utilisés pour comparer deux valeurs. Ils sont très utiles pour
prendre des décisions dans les structures conditionnelles comme `if`, `switch`, et les boucles. Voici les
opérateurs de comparaison en Java :
- == (égal à) : Vérifie si deux valeurs sont égales.
- != (différent de) : Vérifie si deux valeurs sont différentes.
- > (supérieur à) : Vérifie si la valeur de gauche est supérieure à celle de droite.
- < (inférieur à) : Vérifie si la valeur de gauche est inférieure à celle de droite.
- >= (supérieur ou égal à) : Vérifie si la valeur de gauche est supérieure ou égale à celle de droite.
- <= (inférieur ou égal à) : Vérifie si la valeur de gauche est inférieure ou égale à celle de droite.
21
Exemple :
int x = 5;
int y = 10;
if (x == y) {
System.out.println("x est égal à y");
} else if (x > y) {
System.out.println("x est supérieur à y");
} else {
System.out.println("x est inférieur à y");
}
Opérateurs logiques
Les opérateurs logiques sont utilisés pour combiner des expressions conditionnelles. Ils sont souvent
utilisés dans les structures conditionnelles et les boucles. Voici les opérateurs logiques en Java :
- && (ET logique) : Renvoie `true` si les deux expressions sont vraies.
- || (OU logique) : Renvoie `true` si au moins une des expressions est vraie.
- ! (NON logique) : Inverse la valeur booléenne de l'expression.
Exemple :
int age = 18;
boolean estMajeur = age >= 18;
boolean aPayer = false;
Dans cet exemple, la condition estMajeur && !aPayer est évaluée à true si estMajeur est true (l'âge est
supérieur ou égal à 18) et aPayer est false (la personne n'a pas encore payé).
Vous pouvez également combiner les opérateurs de comparaison et les opérateurs logiques pour créer
des expressions conditionnelles plus complexes.
import java.util.Scanner;
if (number % 2 == 0) {
System.out.println("Le nombre saisi est pair.");
} else {
System.out.println("Le nombre saisi est impair.");
}
scanner.close();
}
}
import java.util.Scanner;
switch (choice) {
case 1:
System.out.println("Bonjour");
break;
case 2:
System.out.println("Bonsoir");
break;
case 3:
System.out.println("Bonne nuit");
break;
default:
System.out.println("Option invalide");
}
scanner.close();
}
}
23
import java.util.Scanner;
// Utilisation d'une boucle while pour calculer la somme des nombres saisis par l'utilisateur
System.out.println("Entrez des nombres entiers (saisissez 0 pour arrêter) :");
while ((number = scanner.nextInt()) != 0) {
sum += number;
}
scanner.close();
}
}
import java.util.Scanner;
do {
System.out.print("Entrez un nombre positif : ");
nombre = scanner.nextInt();
if(nombre <= 0) {
System.out.println("Le nombre saisi doit être positif !");
}
} while(nombre <= 0);
Déclaration de Constantes
En Java, les constantes peuvent être déclarées de deux manières principales :
1. Constantes de type primitif : Ces constantes sont des valeurs immuables de types de données
primitifs tels que int, double, char, boolean, etc.
final int MAX_SIZE = 100;
final double PI = 3.14159;
final char YES_OPTION = 'Y';
final boolean DEBUG_MODE = false;
2. Constantes d'objet : Ces constantes sont des références immuables à des objets, généralement des
chaînes de caractères.
final String COMPANY_NAME = "Acme Corporation";
final String GREETING_MESSAGE = "Welcome to our website!";
Dans cet exemple, TAX_RATE et MAX_ATTEMPTS sont des constantes qui sont utilisées pour
calculer la taxe sur un prix et pour suivre le nombre d'essais restants, respectivement.
Conventions de Nommage
Il est courant d'écrire le nom des constantes en lettres majuscules, avec des mots séparés par des
underscores, pour les distinguer des variables normales.
Méthodes statiques
Une méthode statique est une méthode qui peut être utilisée sans avoir besoin d'instancier un objet de
la classe à laquelle elle appartient. Cependant, une méthode statique appartient toujours à une classe et
sa définition est donnée à l'intérieur de la définition de la classe.
Lorsqu'une méthode statique est définie, le mot-clé `static` est placé dans l'en-tête de la méthode,
comme ceci :
public static typeDeRetour nomDeLaMethode(parametres) {
// corps de la méthode
}
Les méthodes statiques sont invoquées en utilisant le nom de la classe à laquelle elles appartiennent,
au lieu d'utiliser un objet. Par exemple :
valeurDeRetour = NomDeLaClasse.nomDeLaMethode(arguments);
● Elles ne peuvent pas accéder ni modifier les variables d'instance non statiques de la classe (car
elles n'ont pas d'instance associée).
● Elles peuvent accéder et modifier les variables statiques de la classe.
● Elles sont généralement utilisées pour des fonctionnalités qui ne dépendent pas de l'état d'un
objet spécifique.
● Elles sont souvent utilisées pour des méthodes utilitaires, comme les méthodes
mathématiques, de conversion, de validation, etc.
Exemple :
public class MaClasse {
private int valeur; // variable d'instance non statique
Dans cet exemple, la méthode multiplier est statique et peut être appelée directement avec le nom de la
classe MaClasse, sans avoir besoin de créer une instance de la classe. Cependant, cette méthode ne
peut pas accéder ni modifier la variable d'instance non statique `valeur`.
Piège : Appeler une méthode non statique depuis une méthode statique
● Une méthode statique ne peut pas faire référence à une variable d'instance de la classe, et elle
ne peut pas non plus invoquer une méthode non statique de la classe.
● Une méthode statique n'a pas de contexte d'instance (this), donc elle ne peut pas utiliser une
variable d'instance ou une méthode qui a un this implicite ou explicite pour un objet appelant.
● Une méthode statique peut invoquer une autre méthode statique, cependant.
Lorsqu'une méthode statique tente d'accéder à une variable d'instance ou d'invoquer une méthode non
statique, le compilateur Java génère une erreur. Cela est dû au fait qu'une méthode statique n'est pas
liée à une instance particulière de la classe, donc elle ne peut pas accéder aux membres d'instance.
Exemple d'erreur :
Dans cet exemple, la méthode afficherValeur() est statique et tente d'accéder à la variable d'instance
valeur. Cela génère une erreur de compilation, car une méthode statique ne peut pas accéder aux
variables d'instance.
Pour résoudre ce problème, vous pouvez soit rendre la méthode afficherValeur() non statique, soit
passer la valeur de valeur en argument à la méthode statique.
Il est important de bien comprendre cette distinction entre les méthodes statiques et non statiques pour
éviter les erreurs de compilation et les comportements inattendus dans votre code Java.
Astuce : Vous pouvez placer une méthode main() dans n'importe quelle classe
Bien que la méthode main() soit souvent placée seule dans une classe distincte des autres classes d'un
programme, elle peut également être contenue dans la définition d'une classe régulière.
- De cette façon, la classe dans laquelle elle est contenue peut être utilisée pour créer des objets dans
d'autres classes, ou elle peut être exécutée en tant que programme.
- Une méthode main() incluse dans une définition de classe régulière est particulièrement utile
lorsqu'elle contient du code de diagnostic pour la classe.
En Java, la méthode main() est le point d'entrée du programme. Cependant, rien n'empêche de l'inclure
dans une classe qui définit également d'autres méthodes et variables. Cette approche peut être
bénéfique dans les situations suivantes :
1. Tester une classe spécifique: Vous pouvez inclure du code de test ou de diagnostic dans la
méthode main() de la classe que vous voulez tester, ce qui facilite le débogage et la validation de cette
classe.
2. Exécuter une classe en tant que programme autonome: Si vous avez une classe qui peut être
exécutée de manière autonome, vous pouvez inclure une méthode main() dans cette classe, ce qui vous
permettra de l'exécuter directement sans avoir besoin d'une classe principale séparée.
3. Regrouper des fonctionnalités liées: Si vous avez un ensemble de fonctionnalités étroitement
liées, vous pouvez les regrouper dans une seule classe, y compris la méthode main(), pour avoir un
programme autonome et cohérent.
Exemple :
public class Calculatrice {
public static int additionner(int a, int b) {
return a + b;
}
Dans cet exemple, la classe Calculatrice contient des méthodes statiques pour l'addition et la
soustraction, ainsi qu'une méthode main() qui les utilise et affiche les résultats. Cette classe peut être
exécutée directement comme un programme autonome.
Bien que cette approche soit possible, il est souvent recommandé de séparer la méthode main() dans
une classe distincte pour une meilleure organisation et une meilleure maintenabilité du code, surtout
pour les programmes plus importants.
public class MathUtil {
Variables statiques
Une variable statique est une variable qui appartient à la classe dans son ensemble, et non à une
instance particulière d'objet.
- Il n'y a qu'une seule copie d'une variable statique par classe, contrairement aux variables d'instance
où chaque objet a sa propre copie.
- Tous les objets de la classe peuvent lire et modifier une variable statique.
- Bien qu'une méthode statique ne puisse pas accéder à une variable d'instance, elle peut accéder à une
variable statique.
- Une variable statique est déclarée comme une variable d'instance, avec l'ajout du modificateur static:
private static int maVariableStatique;
Les variables statiques peuvent être déclarées et initialisées en même temps :
private static int maVariableStatique = 0;
29
- Si elle n'est pas explicitement initialisée, une variable statique sera automatiquement initialisée avec
une valeur par défaut :
- Les variables statiques de type boolean sont initialisées à false.
- Les variables statiques de types primitifs sont initialisées à la valeur zéro de leur type.
- Les variables statiques de type classe sont initialisées à null.
- Il est toujours préférable d'initialiser explicitement les variables statiques plutôt que de compter sur
l'initialisation par défaut.
Une variable statique doit toujours être déclarée private, sauf si elle est aussi une constante définie.
- La valeur d'une constante statique définie ne peut pas être modifiée, donc il est sûr de la rendre
public.
- En plus du mot-clé static, la déclaration d'une constante statique définie doit inclure le modificateur
final qui indique que sa valeur ne peut pas être changée :
- Lorsque vous faites référence à une telle constante définie en dehors de sa classe, utilisez le nom de
sa classe au lieu d'un objet appelant :
Les variables statiques sont utiles lorsque vous avez besoin de partager des données entre toutes les
instances d'une classe, ou lorsque vous avez des valeurs constantes liées à la classe. Cependant, il faut
les utiliser avec précaution, car elles peuvent introduire des effets de bord indésirables si elles sont
modifiées de manière inattendue.
instance1.setSharedValue(5);
System.out.println("Valeur partagée après modification par instance1 : " + instance2.getSharedValue());
instance2.setSharedValue(10);
System.out.println("Valeur partagée après modification par instance2 : " + instance1.getSharedValue());
}
}
Tableaux
En Java, on utilise une structure de données appelée "array" (tableau) pour stocker une collection
séquentielle de taille fixe d'éléments du même type. Un tableau est utilisé pour stocker une collection
de données, mais il est souvent plus utile de le considérer comme une collection de variables du même
type.
Au lieu de déclarer des variables individuelles, telles que nombre0, nombre1, ..., et nombre99, vous
déclarez une seule variable de tableau telle que "nombres" et utilisez nombres[0], nombres[1], et ...,
nombres[99] pour représenter les variables individuelles.
Création de Tableaux :
Vous pouvez créer un tableau en utilisant l'opérateur "new" avec la syntaxe suivante :
Les éléments du tableau sont accessibles via l'indice. Les indices de tableau commencent à 0 ; c'est-à-
dire qu'ils commencent
Example:
Following statement declares an array variable, myList, creates an array of 10 elements of double
type and assigns its reference to myList:
double[] myList = new double[10];
32
L'image suivante représente le tableau myList. Ici, myList contient dix valeurs de type double et les
indices vont de 0 à 9.
Lorsque nous traitons les éléments d'un tableau, nous utilisons souvent soit une boucle for, soit une
boucle foreach, car tous les éléments d'un tableau sont du même type et la taille du tableau est connue.
Exemple :
Voici un exemple complet montrant comment créer, initialiser et traiter des tableaux :
public class TestArray {
public static void main(String[] args) {
double[] myList = {1.9, 2.9, 3.4, 3.5};
// Afficher tous les éléments du tableau
for (int i = 0; i < myList.length; i++) {
System.out.println(myList[i] + " ");
}
// Somme de tous les éléments
double total = 0;
for (int i = 0; i < myList.length; i++) {
total += myList[i];
}
System.out.println("Total est " + total);
// Recherche de l'élément le plus grand
double max = myList[0];
for (int i = 1; i < myList.length; i++) {
if (myList[i] > max) max = myList[i];
}
System.out.println("Max est " + max);
}
}
Exemple :
Le code suivant affiche tous les éléments du tableau myList :
public class TestArray {
public static void main(String[] args) {
double[] myList = {1.9, 2.9, 3.4, 3.5};
// Afficher tous les éléments du tableau
for (double element: myList) {
System.out.println(element);
}
}
}
Tout comme vous pouvez passer des valeurs de type primitif aux méthodes, vous pouvez également
passer des tableaux aux méthodes. Par exemple, la méthode suivante affiche les éléments dans un
tableau d'entiers :
public static void printArray(int[] tableau) {
for (int i = 0; i < tableau.length; i++) {
System.out.print(tableau[i] + " ");
}
}
Vous pouvez l'invoquer en passant un tableau. Par exemple, l'instruction suivante invoque la méthode
printArray pour afficher 3, 1, 2, 6, 4 et 2 :
printArray(new int[]{3, 1, 2, 6, 4, 2});
Renvoyer un tableau à partir d'une méthode :
Une méthode peut également renvoyer un tableau. Par exemple, la méthode ci-dessous renvoie un
tableau qui est l'inversion d'un autre tableau :
En plus des tableaux unidimensionnels, Java prend également en charge les tableaux à plusieurs
dimensions. Un tableau à plusieurs dimensions est une collection de tableaux unidimensionnels. Les
tableaux à deux dimensions sont les plus couramment utilisés, mais Java prend en charge jusqu'à 255
dimensions.
34
Vous pouvez également initialiser un tableau à deux dimensions avec une taille spécifique en utilisant
l'opérateur `new`, par exemple :
int[][] tableau2D = new int[5][5];
Les éléments d'un tableau à plusieurs dimensions sont accessibles en spécifiant les indices pour chaque
dimension. Par exemple, pour accéder à l'élément à la première ligne et deuxième colonne d'un tableau
à deux dimensions, vous pouvez utiliser :
int valeur = tableau2D[0][1];
Voici un exemple complet illustrant la déclaration, l'initialisation et l'accès aux éléments d'un tableau à
deux dimensions :
public class Tableau2D {
public static void main(String[] args) {
// Déclaration et initialisation d'un tableau à deux dimensions
int[][] tableau2D = { {1, 2, 3}, {4, 5, 6} };
La classe `java.util.Arrays` fournit des méthodes statiques pour trier et rechercher des tableaux,
comparer des tableaux et remplir les éléments d'un tableau. Ces méthodes sont surchargées pour tous
les types primitifs.
Méthode sort()
La méthode sort() permet de trier un tableau dans l'ordre croissant. Voici un exemple
35
import java.util.Arrays;
Méthode binarySearch()
La méthode binarySearch() permet de rechercher un élément dans un tableau trié en utilisant la
recherche binaire. Voici un exemple :
import java.util.Arrays;
Méthode equals()
La méthode equals() permet de comparer deux tableaux pour vérifier s'ils contiennent les mêmes
éléments dans le même ordre. Voici un exemple :
import java.util.Arrays;
Méthode fill()
La méthode fill() permet de remplir tous les éléments d'un tableau avec une valeur spécifiée. Voici un
exemple :
import java.util.Arrays;