bonsoir!
pourriez-vous svp m'expliquer quelle est la différence entre size et length ?
on les utilise pour les mêmes choses ? (tableau, liste..)
merci à tous!
bonne soirée
aud-
Version imprimable
bonsoir!
pourriez-vous svp m'expliquer quelle est la différence entre size et length ?
on les utilise pour les mêmes choses ? (tableau, liste..)
merci à tous!
bonne soirée
aud-
Ben la réponse est dans la question.
length est une donnée membre des tableaux ([]).
size() est une méthode qui s'applique sur les collections.
@+
Lionel
Pour connaître la raison de l'existence des 2 (à la place d'avoir size ou length partout), demande aux gars de Sun qui ont désigné l'API... Ils devaient pas souvent parler ensemble, ceux-là ;-)
voiçi un code que j'ai trouvé sur la toile:
résultat:Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 import java.util.BitSet; public class BitSetTest { public static void main(String[] args) { BitSet bits = new BitSet(8); for (int i = 0; i < 8; i++) { if (i % 2 == 0) bits.clear(i); else bits.set(i); } System.out.println("BitSet " + bits); System.out.println("length: " + bits.length() + ", size: " + bits.size()); } }
à vous d'en juger :king:Code:
1
2
3 BitSet {1, 3, 5, 7} length: 8, size: 64
s'il faut commetner le code précédant on aboutira à la conclusion que length renvoie le nombre d'élément d'une collection ou un tableau alors que size renvoi l'espace mémoire occupé.
dans le code code précédent:
on a déclaré un bitset de 8 elements. selon le fonctionnement de Bitset ce sont les indices qui porte la valeur TRUE qui sont affiché, mais le bitset a toujours 8 élements et c'est ce que renvoi la méthode length.
par contre size renvoi 64=8*8 c'est à dire 8 éléments de de 8bits. enffet l'espace mémoire!
Attention la conversation que tu cites est a propos de la classe BitSet qui n'a rien a voir avec l'API de Collection de Java
D'accord avec Uther. La méthode size() de BitSet ne renvoie pas le nombre d'élément dans l'ensemble alors que size() des collections renvoie bien le nombre d'éléments.
Pour un tableau comme int[], length n'est pas une méthode mais une donnée membre... mais de quelle classe ?? :?
Salut,
Les tableaux sont des objets Java créé dynamiquement, et qui possède un attribut length en lecture seule...
Tout ceci est défini dans les specs du langage : http://java.sun.com/docs/books/jls/t...ml/arrays.html
a++
Ok, j'avais jamais lu ce chapitre de la spec Java.
Merci ! :)