web-dev-qa-db-fra.com

Différence entre les méthodes de taille et de longueur?

Quelle est la différence entre .size() et .length? .size() ne concerne-t-il que les arraylists et .length Uniquement les tableaux?

36
BeLambda

length est une constante qui permet de connaître la capacité de stockage du tableau et non le nombre d'éléments dans le tableau

Exemple:

int a[] = new int[5]

a.length Renvoie toujours 5 qui s'appelle la capacité d'un tableau, donc length renvoie toujours la CAPACITE. mais

"le nombre d'éléments dans le tableau s'appelle la taille"

Exemple:

int a[] = new int[5]
a[0] = 10

Il en résultera a.size = 1 Et a.length = 5.

size() fonctionne avec la collection, length fonctionne avec les tableaux en Java

24

size() est une méthode spécifiée dans Java.util.Collection, qui est ensuite héritée par toutes les structures de données de la bibliothèque standard. length est un champ de n'importe quel tableau (les tableaux sont des objets, vous ne voyez pas la classe normalement), et length() est une méthode sur Java.lang.String, qui est simplement un wrapper mince sur un char[] de toute façon.

Peut-être que par conception, les tableaux et les chaînes sont immuables et que toutes les sous-classes de collection de niveau supérieur sont mutables. Donc, là où vous voyez "longueur", vous savez que c'est constant, et où vous voyez "taille", ce n'est pas le cas.

50
MattPutnam
length variable:

En Java, array (et non Java.util.Array) est une classe prédéfinie dans le langage lui-même. Pour trouver les éléments d'un tableau, les concepteurs ont utilisé longueur variable (longueur est un membre de champ dans la classe prédéfinie). Ils doivent avoir donné longueur () pour avoir l'uniformité en Java; mais n'a pas. La raison en est la performance, l'exécution de la variable de longueur est plus rapide que l'appel de la méthode length (). C'est comme comparer deux chaînes avec == et equals (). equals () est un appel de méthode qui prend plus de temps que l'exécution de l'opérateur ==.

size() method:

Il est utilisé pour trouver le nombre d'éléments présents dans les classes de collection. Il est défini dans l'interface Java.util.Collection.

2
Khan

Sur la base de la syntaxe, je suppose qu’il s’agit d’un langage descendant de C. Selon ce que j’ai vu précédemment, length est utilisé pour les éléments de collection simples tels que les tableaux et, dans la plupart des cas, il s’agit d’une propriété.

size() est une fonction utilisée pour les objets de collection dynamiques. Cependant, pour tous les objectifs d'utilisation, vous ne constaterez aucune différence dans les résultats en utilisant l'un ou l'autre. Dans la plupart des implémentations, size renvoie simplement la propriété length.

1
Buddha

Je parie (pas de langue spécifiée) La méthode size() renvoie la propriété length.

Cependant, la boucle for valide devrait ressembler à ceci:

for (int i = 0; i < values.length; i++) {}
0
hsz