Les tableaux sont l'une des structures de données importantes pour chaque langage de programmation. Bien entendu, différents langages implémentent et traitent les tableaux différemment.
Les tableaux fournis dans le langage Java sont utilisés pour stocker des éléments de taille fixe du même type.
Vous pouvez déclarer une variable tableau, telle que nombres[100] au lieu de déclarer directement 100 variables indépendantes numéro0, numéro1, ...., numéro99.
Ce tutoriel vous présentera la déclaration, la création et l'initialisation des tableaux Java, et vous donnera le code correspondant.
Les variables de tableau doivent d'abord être déclarées avant qu'un tableau puisse être utilisé dans un programme. Voici la syntaxe pour déclarer les variables d'un tableau :
dataType[]arrayRefVar;//首选的方法或dataTypearrayRefVar[];//效果相同,但不是首选方法
Remarque : Il est recommandé d'utiliser le style de déclaration dataType[] arrayRefVar pour déclarer les variables de tableau. Le style dataType arrayRefVar[] provient du langage C/C++ et est adopté en Java pour permettre aux programmeurs C/C++ de comprendre rapidement le langage Java.
Voici des exemples de code pour les deux syntaxes :
double[]myList;//首选的方法或doublemyList[];//效果相同,但不是首选方法
Le langage Java utilise l'opérateur new pour créer un tableau. La syntaxe est la suivante :
arrayRefVar=newdataType[arraySize];
L'instruction de syntaxe ci-dessus fait deux choses :
1. Créez un tableau en utilisant dataType[arraySize].
2. Attribuez la référence du tableau nouvellement créé à la variable arrayRefVar.
La déclaration des variables du tableau et la création du tableau peuvent être complétées en une seule instruction, comme indiqué ci-dessous :
dataType[]arrayRefVar=newdataType[arraySize];
De plus, vous pouvez également créer un tableau en utilisant la méthode suivante.
dataType[]arrayRefVar={value0,value1,...,valuek};
Les éléments d'un tableau sont accessibles par index. L'indexation du tableau commence à 0, donc les valeurs d'index vont de 0 à arrayRefVar.length-1.
Ensuite, lorsque le tableau ouvre de l'espace, vous pouvez opérer de la manière suivante :
Exemple : définir un tableau int
public class ArrayDemo { public static void main(String args[]) { int data[] = new int[3]; /*开辟了一个长度为3的数组*/ data[0] = 10; // 第一个元素 data[1] = 20; // 第二个元素 data[2] = 30; // 第三个元素 for(int x = 0; x < data.length; x++) { System.out.println(data[x]); //通过循环控制索引 } } }
En plus de déclarer et d'allouer de l'espace, le tableau lui-même dispose d'un autre mode d'allocation.
Exemple : Utiliser le mode étape par étape pour ouvrir l'espace du tableau
public class ArrayDemo { public static void main(String args[]) { int data[] = null; data = new int[3]; /*开辟了一个长度为3的数组*/ data[0] = 10; // 第一个元素 data[1] = 20; // 第二个元素 data[2] = 30; // 第三个元素 for(int x = 0; x < data.length; x++) { System.out.println(data[x]); //通过循环控制索引 } } }
Mais n'oubliez pas que les tableaux sont des types de données de référence, donc l'espace doit être alloué (instancié) avant que le tableau ne soit utilisé. Si un tableau sans espace alloué est utilisé, un message NullPointerException
apparaîtra certainement :
public class ArrayDemo { public static void main(String args[]) { int data[] = null; System.out.println(data[x]); } }
Ce principe est exactement le même que celui expliqué précédemment.
Les tableaux seront certainement utilisés pendant le développement, mais les opérations comme celle ci-dessus sont rares. Dans le développement futur, le concept de tableau sera davantage utilisé, et lorsqu'il est utilisé directement, dans la plupart des cas, il s'agit simplement d'une sortie de boucle for.
Le type d'élément du tableau et la taille du tableau sont déterminés, donc lors du traitement des éléments du tableau, nous utilisons généralement une boucle de base ou une boucle foreach.
Cet exemple montre entièrement comment créer, initialiser et manipuler des tableaux :
publicclassTestArray{ publicstaticvoidmain(String[]args){ double[]myList={1.9,2.9,3.4,3.5}; //打印所有数组元素for(inti=0;i<myList.length;i++){ System.out.println(myList[i]+""); } //计算所有元素的总和doubletotal=0; for(inti=0;i<myList.length;i++){ total+=myList[i]; } System.out.println("Totalis"+total); //查找最大元素doublemax=myList[0]; for(inti=1;i<myList.length;i++){ if(myList[i]>max)max=myList[i]; } System.out.println("Maxis"+max); } }
Les résultats de compilation et d'exécution de l'exemple ci-dessus sont les suivants :
1.9 2.9 3.4 3.5 Totalis11.7 Maxis3.5
JDK 1.5 a introduit un nouveau type de boucle, appelé boucle foreach ou boucle améliorée, qui parcourt un tableau sans utiliser d'indices.
Le format de syntaxe est le suivant :
for(type element: array){ System.out.println(element); }
Cet exemple permet d'afficher tous les éléments du tableau maListe :
publicclassTestArray{ publicstaticvoidmain(String[]args){ double[]myList={1.9,2.9,3.4,3.5}; //打印所有数组元素for(doubleelement:myList){ System.out.println(element); } } }
Les résultats de compilation et d'exécution de l'exemple ci-dessus sont les suivants :
1.9 2.9 3.4 3.5
Les tableaux peuvent être transmis en tant que paramètres aux méthodes. Par exemple, l'exemple suivant est une méthode qui imprime les éléments d'un tableau int.
publicstaticvoidprintArray(int[]array){ for(inti=0;i<array.length;i++){ System.out.print(array[i]+""); } }
L'exemple suivant appelle la méthode printArray pour imprimer 3, 1, 2, 6, 4 et 2 :
printArray(newint[]{3,1,2,6,4,2});
publicstaticint[]reverse(int[]list){ int[]result=newint[list.length]; for(inti=0,j=result.length-1;i<list.length;i++,j--){ result[j]=list[i]; } returnresult; }
Dans l'exemple ci-dessus, le tableau de résultats est utilisé comme valeur de retour de la fonction.
La classe java.util.Arrays peut facilement exploiter des tableaux et toutes les méthodes qu'elle fournit sont statiques. A les fonctions suivantes :
Attribuez une valeur au tableau : via la méthode fill.
Trier le tableau : utilisez la méthode sort, par ordre croissant.
Comparer les tableaux : utilisez la méthode égale pour comparer si les valeurs des éléments du tableau sont égales.
Recherche d'éléments du tableau : La méthode binaireSearch peut effectuer une opération de recherche binaire sur le tableau trié.
Veuillez consulter le tableau ci-dessous pour des instructions spécifiques :
numéro de série | Méthodes et instructions |
---|---|
1 | public static int binaireSearch(Object[] a, Object key) utilise un algorithme de recherche binaire pour rechercher un objet avec une valeur donnée (Byte, Int, double, etc.) dans le tableau donné. Le tableau doit être trié avant l'appel. Si la valeur de recherche est contenue dans un tableau, renvoie l'index de la clé de recherche ; sinon, renvoie (-( point d'insertion ) - 1). |
2 | public static boolean equals(long[] a, long[] a2) Renvoie vrai si les deux tableaux longs spécifiés sont égaux l'un à l'autre. Deux tableaux sont considérés comme égaux s’ils contiennent le même nombre d’éléments et que toutes les paires d’éléments correspondantes dans les deux tableaux sont égales. Autrement dit, deux tableaux sont égaux s’ils contiennent les mêmes éléments dans le même ordre. La même approche fonctionne pour tous les autres types de données de base (Byte, short, Int, etc.). |
3 | public static void fill(int[] a, int val) attribue la valeur int spécifiée à chaque élément de la plage spécifiée du tableau de type int spécifié. La même approche fonctionne pour tous les autres types de données de base (Byte, short, Int, etc.). |
4 | public static void sort(Object[] a) trie le tableau d'objets spécifié par ordre croissant en fonction de l'ordre naturel de ses éléments. La même approche fonctionne pour tous les autres types de données de base (Byte, short, Int, etc.). |