Java >> Tutoriel Java >  >> Java

Comment réduire la taille d'un tableau en Java

Dans cette section, nous allons voir comment réduire la taille d'un tableau en Java . Pouvez-vous modifier la taille d'un tableau en Java ? Non, nous ne pouvons pas réduire la taille d'un tableau en Java. En Java, les tableaux ont une taille fixe, ce qui signifie qu'une fois qu'un tableau est créé, nous ne pouvons pas modifier sa taille. Mais s'il est nécessaire de modifier la taille d'un tableau en Java, nous pouvons créer un autre tableau de la longueur requise et copier les éléments requis dans le nouveau tableau. De cette façon, nous pouvons réduire la taille d'un tableau.

Par exemple :-
array =[1, 2, 3]
Le tableau ci-dessus est de taille 3, nous voulons le réduire à 2.
array1 =resize(array, 2)
tableau1 =[1, 2]

Comment redimensionner un tableau Java

import java.util.Arrays;

public class Main {
   public static void main(String[] args) {
      int[] array = { 1, 2, 3, 4, 5 };
      System.out.println("Array elements are: " 
                         + Arrays.toString(array));
      array = (int[]) resize(array, 3);

      System.out.println("The new array elements are: " 
                         + Arrays.toString(array));
   }

   private static Object resize(Object oldArray, int newSize) {
      int oldSize = java.lang.reflect.Array.getLength(oldArray);
      Class<?> elementType = oldArray.getClass().getComponentType();
      Object newArray = 
           java.lang.reflect.Array.newInstance(elementType, newSize);
      int preserveLength = Math.min(oldSize, newSize);
      if (preserveLength > 0) {
         System.arraycopy(oldArray, 0, newArray, 0, preserveLength);
      }
      return newArray;
   }
}

Sortie :-

Les éléments du tableau sont :[1, 2, 3, 4, 5]
Les nouveaux éléments du tableau sont :[1, 2, 3]

En utilisant la méthode resize() ci-dessus, nous pouvons réduire la longueur de tout type de tableau en Java. Dans le programme ci-dessus, nous avons utilisé l'API de réflexion et la méthode System.arraycopy(). En Java, la classe System contient de nombreuses méthodes natives comme la méthode arraycopy(). arraycopy() est une méthode native et utilise une copie mémoire directe en dehors de Java land.

Tableau de redimensionnement Java

Voyons un autre programme pour réduire la taille d'un tableau en Java en utilisant la méthode Arrays.copyOf(). La méthode copyOf() de la classe Java Arrays utilise en interne la méthode System.arraycopy() elle-même.

import java.util.Arrays;

public class Main {
   public static void main(String[] args) {
      int[] array = { 12, 24, 63, 45, 50 };
      System.out.println("Array before Resize: " 
                         + Arrays.toString(array));

      array = Arrays.copyOf(array, 3);
      System.out.println("Array after Resize: " 
                        + Arrays.toString(array));
   }
}

Sortie :-

Tableau avant redimensionnement :[12, 24, 63, 45, 50]
Tableau après redimensionnement :[12, 24, 63]


Balise Java