Tableau Java
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.
Déclarer des variables de tableau
Tout d'abord, vous devez déclarer une variable de tableau avant de pouvoir utiliser le tableau dans votre programme. Voici la syntaxe pour déclarer les variables de tableau :
dataType[] arrayRefVar; // 首选的方法 或 dataType arrayRefVar[]; // 效果相同,但不是首选方法
Remarque : Il est recommandé d'utiliser le style de déclaration de 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.
Exemples
Voici des exemples de code de ces deux syntaxes :
double[] myList; // 首选的方法 或 double myList[]; // 效果相同,但不是首选方法
Création de tableaux
Le langage Java utilise l'opérateur new pour créer arrays , la syntaxe est la suivante :
arrayRefVar = new dataType[arraySize];
L'instruction de syntaxe ci-dessus fait deux choses :
1 Utilisez dataType[arraySize] pour créer un tableau.
2. Attribuez la référence du tableau nouvellement créé à la variable arrayRefVar.
La déclaration des variables du tableau et la création des tableaux peuvent être complétées par une seule instruction, comme indiqué ci-dessous :
dataType[] arrayRefVar = new dataType[arraySize];
De plus, vous pouvez également créer des tableaux de la manière 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.
Exemple
L'instruction suivante déclare d'abord une variable de tableau maListe, puis crée un tableau contenant 10 éléments de type double et attribue sa référence à la variable maListe.
public class TestArray { public static void main(String[] args) { // 数组大小 int size = 10; // 定义数组 double[] myList = new double[size]; myList[0] = 5.6; myList[1] = 4.5; myList[2] = 3.3; myList[3] = 13.2; myList[4] = 4.0; myList[5] = 34.33; myList[6] = 34.0; myList[7] = 45.45; myList[8] = 99.993; myList[9] = 11123; // 计算所有元素的总和 double total = 0; for (int i = 0; i < size; i++) { total += myList[i]; } System.out.println("总和为: " + total); } }
Le résultat de sortie de l'exemple ci-dessus est :
总和为: 11367.373
L'image suivante représente le tableau myList. Ici, il y a 10 éléments doubles dans le tableau myList et leurs indices vont de 0 à 9.
Traitement des tableaux
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 la boucle de base ou la boucle foreach.
Exemple
Cet exemple montre complètement comment créer, initialiser et manipuler un tableau :
public class TestArray { public static void main(String[] args) { double[] myList = {1.9, 2.9, 3.4, 3.5}; // 打印所有数组元素 for (int i = 0; i < myList.length; i++) { System.out.println(myList[i] + " "); } // 计算所有元素的总和 double total = 0; for (int i = 0; i < myList.length; i++) { total += myList[i]; } System.out.println("Total is " + total); // 查找最大元素 double max = myList[0]; for (int i = 1; i < myList.length; i++) { if (myList[i] > max) max = myList[i]; } System.out.println("Max is " + 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 Total is 11.7 Max is 3.5
foreach loop
JDK 1.5 introduit un nouveau type de boucle, appelé boucle foreach ou boucle améliorée, qui peut parcourir un tableau sans utiliser d'indices.
Exemple
Cet exemple est utilisé pour afficher tous les éléments du tableau myList :
public class TestArray { public static void main(String[] args) { double[] myList = {1.9, 2.9, 3.4, 3.5}; // 打印所有数组元素 for (double element: 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
Array Les tableaux de
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.
public static void printArray(int[] array) { for (int i = 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(new int[]{3, 1, 2, 6, 4, 2});
Le tableau est utilisé comme valeur de retour de la fonction
public static int[] reverse(int[] list) { int[] result = new int[list.length]; for (int i = 0, j = result.length - 1; i < list.length; i++, j--) { result[j] = list[i]; } return result; }
Dans l'exemple ci-dessus, le tableau de résultats est utilisé comme valeur de retour de la fonction.
Classe Arrays
La classe java.util.Arrays peut facilement faire fonctionner des tableaux, et toutes les méthodes qu'elle fournit sont statiques. Possède les fonctions suivantes :
Attribuer une valeur au tableau : via la méthode fill.
Trier le tableau : utilisez la méthode de tri, par ordre croissant.
Comparer les tableaux : comparez si les valeurs des éléments du tableau sont égales via la méthode égale.
Rechercher des éléments du tableau : une opération de recherche binaire peut être effectuée sur le tableau trié via la méthode binaireSearch.
Veuillez consulter le tableau ci-dessous pour des instructions spécifiques :
序号 | 方法和说明 |
---|---|
1 | public static int binarySearch(Object[] a, Object key) 用二分查找算法在给定数组中搜索给定值的对象(Byte,Int,double等)。数组在调用前必须排序好的。如果查找值包含在数组中,则返回搜索键的索引;否则返回 (-(插入点) - 1)。 |
2 | public static boolean equals(long[] a, long[] a2) 如果两个指定的 long 型数组彼此相等,则返回 true。如果两个数组包含相同数量的元素,并且两个数组中的所有相应元素对都是相等的,则认为这两个数组是相等的。换句话说,如果两个数组以相同顺序包含相同的元素,则两个数组是相等的。同样的方法适用于所有的其他基本数据类型(Byte,short,Int等)。 |
3 | public static void fill(int[] a, int val) 将指定的 int 值分配给指定 int 型数组指定范围中的每个元素。同样的方法适用于所有的其他基本数据类型(Byte,short,Int等)。 |
4 | public static void sort(Object[] a) 对指定对象数组根据其元素的自然顺序进行升序排列。同样的方法适用于所有的其他基本数据类型(Byte,short,Int等)。 |