IFT 1170, Automne 2006 (par Le Van N.)
Chapitre 5 : Les tableaux en Java
78
En Java, un tableau est un objet.
Les éléments d’un tableau doivent tous être du même type.
1) Déclaration, initialisation, traitement :
Aux chapitres précédents, nous avons vu que nous pouvons
déclarer et utiliser un tableau de réels comme suit :
double[] taille = {1.76, 1.68, 1.89, 1.72, 1.54,
1.78, 1.34, 1.78 };
et que cette déclaration crée un objet de la taille de 8
réels (type double) et initialise les valeurs du tableau.
double[] taille; /* déclaration d’une variable de
référence sur un tableau des réels */
La liste de valeurs entre les accolades est une liste
d’initialisation. L’utilisation d’une liste
d’initialisation n’est permise que lors de la déclaration
d’un tableau.
Celle-ci permet la création implicite d’un objet dont la
taille correspond exactement au nombre d’éléments de la
liste.
L’affectation place donc une référence vers le nouvel objet
dans la variable de référence taille.
Chaque élément du tableau est accessible à travers son
indice.
Nous accédons à une valeur du tableau en spécifiant son
indice entre des crochets.
Ex. : taille[0] est le premier élément du tableau taille,
c’est une variable de type double ayant comme valeur 1.76.
On peut illustrer le tableau des tailles par le schéma
suivant :
IFT 1170, Automne 2006 (par Le Van N.)
Chapitre 5 : Les tableaux en Java
79
taille
1.76
1.68
1.89
1.72
1.54
1.78
1.34
1.78
1. L'indice commence par 0 (zéro)
2. La boucle for est largement utilisée pour traiter
les tableaux.
3. La longueur (le nombre d’éléments) du tableau est
déterminée par taille.length qui vaut 8
4. Sur l'en-tête d'une méthode : un paramètre de type
tableau est représenté par le type, le nom, crochet
ouvert puis crochet fermé :
static double moyenne( double taille[], int nbPers)
etc . . .
static void afficher( double [] taille, int nbPers)
etc . . .
Exemple : déterminer la taille la plus petite :
double plusPetiteTaille = Double.MAX_VALUE ;
for (int i = 0 ; i < taille.length ; i++)
if ( taille[i] < plusPetiteTaille)
plusPetiteTaille = taille[i];
Remarques :
Avec les crochets placés tout de suite après le type :
int[] age = {23, 12, 27 },
nbCafe = { 3, 5, 0 } ;
int [] représente le « type tableau d’entiers » et age,
nbCafe sont deux tableaux d’entiers.
Avec les crochets non placés tout de suite après le type :
int age[] = {23, 12, 27 }, nbFem = 2 ;
IFT 1170, Automne 2006 (par Le Van N.)
Chapitre 5 : Les tableaux en Java
80
age est un tableau d’entiers mais nbFem est une variable
simple de type entier.
Autre façons de déclarer et créer le tableau taille :
double[] taille = new double[8];
Nous pouvons ensuite initialiser les 8 valeurs du tableau
en accédant chaque élément et en affectant la valeur
désirée, par exemple :
taille[0] = 1.76;
taille[1] = 1.68;
taille[2] = 1.89;
taille[3] = 1.72;
taille[4] = 1.54;
taille[5] = 1.78;
taille[6] = 1.34;
taille[7] = 1.78;
Donc, le nom du tableau (taille) est une variable de référence vers un
objet de type tableau de double.
La déclaration de taille et la création de l’objet sont donc 2 étapes
distinctes.
Contrairement au langage C (et C++), le nom d’un tableau n’est pas
considéré comme une constante.
double[] tab2;
tab2 = taille;
Cette affectation est valide, tab2 et taille sont maintenant des alias
pour le même objet.
Taille d’un tableau :
Chaque objet tableau possède une constante publique nommée length qui
stocke la taille du tableau.
Elle est référencée en se servant du nom du tableau (comme pour tout
autre objet)
:
:
E
Ex
x
:
:
t
ta
ai
il
ll
le
e.
.l
le
en
ng
gt
th
h
c
co
on
nt
ti
ie
en
nt
t
l
la
a
v
va
al
le
eu
ur
r
8
8
C
Ce
et
tt
te
e
v
va
al
le
eu
ur
r
c
co
or
rr
re
es
sp
po
on
nd
d
a
au
u
n
no
om
mb
br
re
e
m
ma
ax
xi
im
mu
um
m
d
d
é
él
lé
ém
me
en
nt
t
p
po
ou
uv
va
an
nt
t
ê
êt
tr
re
e
p
pl
la
ac
cé
é
d
da
an
ns
s
l
le
e
t
ta
ab
bl
le
ea
au
u,
,
i
il
l
e
es
st
t
p
po
os
ss
si
ib
bl
le
e
q
qu
u
i
il
l
y
y
a
ai
it
t
m
mo
oi
in
ns
s
d
d
é
él
lé
ém
me
en
nt
t
v
va
al
li
id
de
e
q
qu
ue
e
c
ce
el
la
a,
,
i
il
l
f
fa
au
ut
t
a
al
lo
or
rs
s
c
co
on
ns
se
er
rv
ve
er
r
e
ex
xp
pl
li
ic
ci
it
te
em
me
en
nt
t
l
le
e
n
no
om
mb
br
re
e
d
d
é
él
lé
ém
me
en
nt
ts
s
v
va
al
li
id
de
es
s
g
gr
râ
âc
ce
e
à
à
u
un
ne
e
v
va
ar
ri
ia
ab
bl
le
e
e
en
nt
ti
iè
èr
re
e.
.
IFT 1170, Automne 2006 (par Le Van N.)
Chapitre 5 : Les tableaux en Java
81
P
Pa
as
ss
sa
ag
ge
e
d
d
u
un
n
t
ta
ab
bl
le
ea
au
u
e
en
n
p
pa
ar
ra
am
mè
èt
tr
re
e
à
à
u
un
ne
e
m
mé
ét
th
ho
od
de
e
:
:
C
Co
om
mm
me
e
t
to
ou
ut
t
o
ob
bj
je
et
t,
,
u
un
n
t
ta
ab
bl
le
ea
au
u
p
pe
eu
ut
t
ê
êt
tr
re
e
p
pa
as
ss
sé
é
e
en
n
p
pa
ar
ra
am
mè
èt
tr
re
e
à
à
u
un
ne
e
m
mé
ét
th
ho
od
de
e.
.
E
Ex
xe
em
mp
pl
le
e
1
1
:
:
S
So
oi
it
t
l
la
a
m
mé
ét
th
ho
od
de
e
s
su
ui
iv
va
an
nt
te
e
:
:
d
do
ou
ub
bl
le
e
p
pl
lu
us
sP
Pe
et
ti
it
t
(
(
d
do
ou
ub
bl
le
e[
[]
]
t
ta
ab
b)
)
{
{
d
do
ou
ub
bl
le
e
m
mi
in
n
=
=
D
Do
ou
ub
bl
le
e.
.M
MA
AX
X_
_V
VA
AL
LU
UE
E;
;
f
fo
or
r(
(i
in
nt
t
i
i
=
=
0
0;
;
i
i
<
<
t
ta
ab
b.
.l
le
en
ng
gt
th
h;
;
i
i+
++
+)
)
i
if
f(
(
t
ta
ab
b[
[i
i]
]
<
<
m
mi
in
n)
)
m
mi
in
n
=
=
t
ta
ab
b[
[i
i]
];
;
r
re
et
tu
ur
rn
n
m
mi
in
n;
;
}
}
e
et
t
s
so
oi
it
t
l
l
a
ap
pp
pe
el
l
d
de
e
c
ce
et
tt
te
e
m
mé
ét
th
ho
od
de
e
c
co
om
mm
me
e
s
su
ui
it
t
:
:
d
do
ou
ub
bl
le
e
p
pl
lu
us
sP
Pe
et
ti
it
te
eT
Ta
ai
il
ll
le
e
=
=
p
pl
lu
us
sP
Pe
et
ti
it
t(
(
t
ta
ai
il
ll
le
e)
);
;
L
Lo
or
rs
s
d
de
e
l
l
a
ap
pp
pe
el
l,
,
t
ta
ai
il
ll
le
e
e
et
t
t
ta
ab
b
d
de
ev
vi
ie
en
nn
ne
en
nt
t
d
de
es
s
a
al
li
ia
as
s
p
po
ou
ur
r
l
le
e
m
mê
êm
me
e
o
ob
bj
je
et
t
(
(l
le
e
t
ta
ab
bl
le
ea
au
u)
).
.
D
Do
on
nc
c,
,
u
un
n
c
ch
ha
an
ng
ge
em
me
en
nt
t
d
da
an
ns
s
l
le
e
c
co
on
nt
te
en
nu
u
d
de
e
t
ta
ab
b
d
da
an
ns
s
l
la
a
m
mé
ét
th
ho
od
de
e
s
se
e
r
re
ef
fl
lé
ét
te
er
ra
a
à
à
t
tr
ra
av
ve
er
rs
s
l
la
a
v
va
ar
ri
ia
ab
bl
le
e
d
de
e
r
ré
éf
fé
ér
re
en
nc
ce
e
t
ta
ai
il
ll
le
e.
.
E
Ex
xe
er
rc
ci
ic
ce
e
:
:
S
So
oi
it
t
l
la
a
m
mé
ét
th
ho
od
de
e
s
su
ui
iv
va
an
nt
te
e
:
:
v
vo
oi
id
d
c
ch
ha
an
ng
ge
em
me
en
nt
t(
(
i
in
nt
t[
[]
]
t
t1
1,
,
i
in
nt
t[
[]
]
t
t2
2)
)
{
{
t
t1
1
=
=
t
t2
2;
;
t
t1
1[
[0
0]
]
=
=
t
t2
2[
[t
t2
2.
.l
le
en
ng
gt
th
h
1
1]
];
;
}
}
E
Et
t
l
le
es
s
d
dé
éc
cl
la
ar
ra
at
ti
io
on
ns
s
e
et
t
i
in
ns
st
tr
ru
uc
ct
ti
io
on
ns
s
s
su
ui
iv
va
an
nt
te
es
s
:
:
i
in
nt
t[
[]
]
n
nu
um
me
er
ro
o
=
=
{
{
1
1,
,
3
3,
,
4
4,
,
5
5
}
};
;
i
in
nt
t[
[]
]
n
nu
um
m
=
=
{
{
4
4,
,
3
3,
,
6
6}
};
;
c
ch
ha
an
ng
ge
em
me
en
nt
t(
(n
nu
um
me
er
ro
o,
,
n
nu
um
m)
);
;
Q
Qu
ue
e
c
co
on
nt
ti
ie
en
nn
ne
en
nt
t
l
le
es
s
t
ta
ab
bl
le
ea
au
ux
x
n
nu
um
me
er
ro
o
e
et
t
n
nu
um
m
a
ap
pr
rè
ès
s
c
ce
et
t
a
ap
pp
pe
el
l?
?
S
So
ol
lu
ut
ti
io
on
n
:
:
A
Av
va
an
nt
t
l
l
a
ap
pp
pe
el
l
:
:
1
1
3
3
4
4
5
5
numero
IFT 1170, Automne 2006 (par Le Van N.)
Chapitre 5 : Les tableaux en Java
82
Au début Au début de la méthode changement :
1
1
3
3
4
4
5
5
t1
t1 et t2 deviennent des alias de numero et num.
après l’instruction
t
t1
1
=
=
t
t2
2;
;
1
1
3
3
4
4
5
5
Après
t
t1
1[
[0
0]
]
=
=
t
t2
2[
[t
t2
2.
.l
le
en
ng
gt
th
h
1
1]
];
;
4
3
6
4
3
6
4
3
6
6
3
6
t2
num
num
t1
numero
t2
num
t1
t2
numero
1 / 20 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !