La différence entre la taille et la longueur en Java

Mohammad Irfan 12 octobre 2023
  1. La propriété length des tableaux en Java
  2. Exemple de .length dans un tableau en Java
  3. Exemple de la méthode size() dans un tableau en Java
  4. Trouvez la longueur à l’aide de la méthode length() en Java
  5. La méthode size() de Java Collections
  6. La différence entre la taille et la longueur en Java
La différence entre la taille et la longueur en Java

Ce tutoriel présente la différence entre la taille et la longueur en Java. Nous avons également répertorié quelques exemples de codes pour vous aider à comprendre le sujet.

Java a une méthode size() et une propriété length. Un débutant peut penser que ceux-ci sont interchangeables et effectuent la même tâche car ils sonnent un peu de la même manière. En Java, la taille et la longueur sont deux choses différentes. Ici, nous allons apprendre les différences entre les deux.

La propriété length des tableaux en Java

Les tableaux stockent un nombre fixe de données du même type de manière ordonnée. Tous les tableaux en Java ont un champ de longueur qui stocke l’espace alloué aux éléments de ce tableau. Il s’agit d’une valeur constante utilisée pour connaître la capacité maximale de la baie.

  • N’oubliez pas que ce champ ne nous donnera pas le nombre d’éléments présents dans le tableau mais le nombre maximum d’éléments pouvant être stockés (indépendamment du fait que des éléments soient présents ou non).

Exemple de .length dans un tableau en Java

Dans le code ci-dessous, nous initialisons d’abord un tableau de longueur 7. Le champ de longueur de ce tableau affiche 7 même si nous n’avons ajouté aucun élément. Ce 7 indique simplement la capacité maximale.

public class Main {
  public static void main(String[] args) {
    int[] intArr = new int[7];
    System.out.print("Length of the Array is: " + intArr.length);
  }
}

Production:

Length of the Array is: 7

Maintenant, ajoutons 3 éléments au tableau en utilisant leur index, puis imprimons le champ de longueur. Il affiche toujours 7.

public class Main {
  public static void main(String[] args) {
    int[] intArr = new int[7];
    intArr[0] = 20;
    intArr[1] = 25;
    intArr[2] = 30;
    System.out.print("Length of the Array is: " + intArr.length);
  }
}

Production:

Length of the Array is: 7

Le champ de longueur est constant car les tableaux sont de taille fixe. Nous devons définir le nombre maximum d’éléments que nous allons stocker dans le tableau (la capacité du tableau) lors de l’initialisation, et nous ne pouvons pas dépasser cette limite.

Exemple de la méthode size() dans un tableau en Java

Il n’y a pas de méthode size() pour les tableaux ; il renverra une erreur de compilation. Voir l’exemple ci-dessous.

public class SimpleTesting {
  public static void main(String[] args) {
    int[] intArr = new int[7];
    System.out.print("Length of the Array is: " + intArr.size());
  }
}

Production:

Exception in thread "main" java.lang.Error: Unresolved compilation problem: 
	Cannot invoke size() on the array type int[]

	at SimpleTesting.main(SimpleTesting.java:7)

Trouvez la longueur à l’aide de la méthode length() en Java

Les chaînes Java sont simplement une collection ordonnée de caractères et, contrairement aux tableaux, elles ont une méthode length() et non un champ length. Cette méthode renvoie le nombre de caractères présents dans la chaîne.

Voir l’exemple ci-dessous.

public class Main {
  public static void main(String[] args) {
    String str1 = "This is a string";
    String str2 = "Another String";
    System.out.println("The String is: " + str1);
    System.out.println("The length of the string is: " + str1.length());
    System.out.println("\nThe String is: " + str2);
    System.out.println("The length of the string is: " + str2.length());
  }
}

Production:

The String is: This is a string
The length of the string is: 16

The String is: Another String
The length of the string is: 14

Notez que nous ne pouvons pas utiliser la propriété length sur les chaînes et que la méthode length n’est pas applicable sur les tableaux. Le code suivant montre les erreurs si nous les abusons.

public class SimpleTesting {
  public static void main(String[] args) {
    String str1 = "This is a string";
    System.out.println("The length of the string is: " + str1.length);
  }
}

Production:

Exception in thread "main" java.lang.Error: Unresolved compilation problem: 
	length cannot be resolved or is not a field

	at SimpleTesting.main(SimpleTesting.java:7)

De même, nous ne pouvons pas utiliser la méthode string length() sur les tableaux.

public class SimpleTesting {
  public static void main(String[] args) {
    int[] intArray = {1, 2, 3};
    System.out.println("The length of the string is: " + intArray.length());
  }
}

Production:

Exception in thread "main" java.lang.Error: Unresolved compilation problem: 
	Cannot invoke length() on the array type int[]

	at SimpleTesting.main(SimpleTesting.java:7)

La méthode size() de Java Collections

size() est une méthode de la classe java.util.Collections. La classe Collections est utilisée par de nombreuses collections (ou structures de données) différentes comme ArrayList, LinkedList, HashSet et HashMap.

La méthode size() renvoie le nombre d’éléments actuellement présents dans la collection. Contrairement à la propriété length des tableaux, la valeur renvoyée par la méthode size() n’est pas constante et change en fonction du nombre d’éléments.

Toutes les collections du Collection Framework en Java sont allouées dynamiquement, le nombre d’éléments peut donc varier. La méthode size() est utilisée pour garder une trace du nombre d’éléments.

Dans le code ci-dessous, il est clair que lorsque nous créons une nouvelle ArrayList sans aucun élément dedans, la méthode size() renvoie 0.

import java.util.ArrayList;
import java.util.List;
public class Main {
  public static void main(String[] args) {
    List<Integer> list = new ArrayList<Integer>();
    System.out.println("The ArrayList is: " + list);
    System.out.println("The size of the ArrayList is: " + list.size());
  }
}

Production:

The ArrayList is: []
The size of the ArrayList is: 0

Mais cette valeur change à mesure que nous ajoutons ou supprimons des éléments. Après avoir ajouté trois éléments, la taille passe à 3. Ensuite, nous avons supprimé deux éléments et la taille de la liste devient 1.

import java.util.ArrayList;
import java.util.List;
public class Main {
  public static void main(String[] args) {
    List<Integer> list = new ArrayList<Integer>();
    System.out.println("The ArrayList is: " + list);
    System.out.println("The size of the ArrayList is: " + list.size());
    list.add(20);
    list.add(40);
    list.add(60);
    System.out.println("\nAfter adding three new elements:");
    System.out.println("The ArrayList is: " + list);
    System.out.println("The size of the ArrayList is: " + list.size());
    list.remove(0);
    list.remove(1);
    System.out.println("\nAfter removing two elements:");
    System.out.println("The ArrayList is: " + list);
    System.out.println("The size of the ArrayList is: " + list.size());
  }
}

Production:

The ArrayList is: []
The size of the ArrayList is: 0

After adding three new elements:
The ArrayList is: [20, 40, 60]
The size of the ArrayList is: 3

After removing two elements:
The ArrayList is: [40]
The size of the ArrayList is: 1

La différence entre la taille et la longueur en Java

Même si la taille et la longueur peuvent parfois être utilisées dans le même contexte, elles ont des significations totalement différentes en Java.

Le champ length des tableaux est utilisé pour désigner la capacité maximale du tableau. Par capacité maximale, on entend le nombre maximal d’éléments qui peuvent y être stockés. Ce champ ne prend pas en compte le nombre d’éléments présents dans le tableau et reste constant.

La méthode des chaînes length() est utilisée pour désigner le nombre de caractères présents dans les chaînes. La méthode size() du Collections Framework est utilisée pour afficher le nombre d’éléments actuellement présents dans cette collection. Les Collections ont une taille dynamique, la valeur de retour de size() peut donc varier.