un. Sur les caractéristiques des tableaux
1. En Java, il y a des limites à vérifier si vous utilisez des tableaux ou des collections. Si l'opération est hors limites, une conception RuntimeException sera obtenue.
2. Les tableaux ne peuvent que les types spécifiques. Les tableaux peuvent enregistrer les types de données natifs, mais les collections ne le peuvent pas. Les collections ne traitent pas les objets dans des types spécifiques. Ils traitent tous les objets en fonction du type d'objet. Ce qui est stocké dans la collection est la référence de l'objet plutôt que dans l'objet lui-même.
3. La classe de collection ne peut enregistrer que des références aux objets. Des tableaux peuvent être créés pour enregistrer directement les types de données natifs ou pour enregistrer des références aux objets. Dans la collection, vous pouvez utiliser la classe Wrapper, telle que Integer, Double, etc. pour enregistrer les valeurs de type de données natives.
Exemple de code:
int a = 10; Entier entier = nouveau entier (a); int b = Integer.intValue (); System.out.println (a = b);
4. Le tableau d'objets et le tableau de type de données natif sont presque les mêmes utilisés; La seule différence est que le tableau d'objets enregistre les références et que le tableau de type de données natif contient la valeur du type de données natif.
2. Utilisation correcte des tableaux
Si vous devez stocker une grande quantité de données, par exemple, si vous devez lire 100 nombres, vous devez définir 100 variables. De toute évidence, il n'a pas beaucoup de sens de répéter le code 100 fois. Comment résoudre ce problème? Le langage Java fournit une structure de données (tableau), qui est un conteneur qui peut stocker des éléments du même type de données et peut stocker 100 nombres dans un tableau. Les tableaux seront d'une grande aide pour le moment ~
1. Avantages des tableaux
Y a-t-il une différence entre le stockage des données et le non-stockage des données? Le plus grand avantage des tableaux est qu'ils peuvent compter automatiquement tous les éléments stockés. Notez que le nombre commence à partir de 0. Facile à utiliser ces données.
Par exemple, le numéro d'étudiant peut être utilisé pour trouver l'étudiant correspondant.
2. Format de tableau
Format 1:
Type d'élément [] Nom du tableau = nouveau type d'élément [nombre d'éléments ou longueur de tableau];
Exemple:
int [] arr = new int [5]; arr [0] = 1; arr [1] = 2;
Format 2:
Type d'élément [] Nom du tableau = nouveau type d'élément [] {élément, élément,…};
int [] arr = new int [] {3,5,1,7}; int [] arr = {3,5,1,7};Remarque: Lors de l'allocation d'espace à un tableau, vous devez spécifier le nombre d'éléments que le tableau peut stocker pour déterminer la taille du tableau. La taille du tableau ne peut pas être modifiée après avoir créé le tableau. Vous pouvez utiliser l'attribut Longueur pour obtenir la taille du tableau.
3. Déclarer les variables de tableau
Pour utiliser un tableau, le tableau doit être déclaré dans le programme et le type d'élément du tableau doit être spécifié.
= Moitié gauche:
Écrivez d'abord le côté gauche pour clarifier que le type d'élément est int et que le conteneur utilise un tableau. Alors, comment identifiez-vous le tableau? . Ensuite, utilisez un symbole spécial [] des supports pour le représenter. Pour utiliser un tableau, vous devez donner un nom au tableau, nous nommons donc le tableau X ici. Suivez ensuite le signe égal.
Le code reflète:
int [] x
Remarque: int x [] est également un format de création de tableaux. Il est recommandé de déclarer les tableaux int [] x.
4. Créer un tableau
= Moitié droite:
Pour utiliser un nouveau mot-clé, appelé nouveau. Nouveau est utilisé pour générer une entité de conteneur en mémoire. Le stockage de données nécessite de l'espace. L'espace pour stocker de nombreuses données est ouvert avec le nouvel opérateur. Nouveau int [3]; Ce 3 est le nombre d'éléments. La pièce à droite définit un vrai tableau en mémoire qui peut stocker 3 éléments.
New Int [3] fait deux choses. Tout d'abord, utilisez New Int [3] pour créer un tableau, puis attribuez la référence à la variable du tableau x.
int [] x=new int[3];
Quel type est x?
Toute variable doit avoir son propre type de données. Notez que ce x n'est pas de type int. INT représente le type d'élément dans le conteneur. Alors x est de type de tableau.
Un tableau est un type de données distinct. Les types de données sont divisés en deux grandes écoles, qui sont divisées en types de données de base et des types de données de référence. La deuxième plus grande école est le type de données de référence. Vous êtes donc maintenant entré en contact avec l'un des trois types de données référencées. C'est-à-dire que les supports de type de tableau [] représentent le tableau.
int[] arr = new int[5]; Que se passe-t-il en mémoire?
Lorsqu'un programme est en cours d'exécution, il est nécessaire d'ouvrir l'espace en mémoire.int [] arr = new int [5]; à quoi ressemble ce programme en mémoire? Cela implique l'espace ouvert par la machine virtuelle Java lors de l'exécution du programme. Alors, combien d'espace Java ouvre-t-il? Continuez à apprendre la structure de mémoire de Java.
5. Initialisation du tableau
Méthode 1: N'utilisez pas l'opérateur nouveau
int [] arr = {1, 2, 3, 4, 5};Méthode 2: Utiliser l'opérateur nouveau
int [] arr2 = new int [] {1, 2, 3, 4, 5}; int [] arr3 = new int [3]; arr3 [0] = 1; arr3 [1] = 5; arr3 [2] = 6;Si l'opérateur nouveau n'est pas utilisé dans l'initialisation du tableau. Remarque: La méthode d'écriture suivante est incorrecte.
int [] arr; arr = {1,2,3,4,5};À l'heure actuelle, initialisant le tableau, vous devez placer la déclaration, la création et l'initialisation dans une déclaration. La séparation provoquera des erreurs de syntaxe.
Vous ne pouvez donc écrire que comme suit:
int [] arr = {1,2,3,4,5};6. Traversage du tableau
public static void main (String [] args) {int [] x = {1, 2, 3}; for (int y = 0; y <3; y ++) {System.out.println (x [y]); // system.out.println ("x [" + y + "] =" + x [y]); Effet d'impression x [0] = 1;} // alors il s'agit de la première opération commune des tableaux. Traversion}Il y a un attribut dans le tableau qui peut obtenir le nombre d'éléments dans le tableau, c'est-à-dire la longueur du tableau. Le name du tableau.length
public static void main (string [] args) {int [] x = {1, 2, 3}; for (int y = 0; y <x.length; y ++) {System.out.println (x [y]); // system.out.println ("x [" + y + "] =" + x [y]); Effet d'impression x [0] = 1;} // alors il s'agit de la première opération commune des tableaux. Traversion}7. Exceptions courantes de tableaux
Un marqueur d'angle du tableau traverse l'exception des limites: Remarque: Le marqueur d'angle du tableau commence à 0.
public static void main (String [] args) {int [] x = {1, 2, 3}; System.out.println (x [3]); // java.lang.arrayindexoutofboundSException}Exception du pointeur à deux nulles:
public static void main (String [] args) {int [] x = {1, 2, 3}; x = null; System.out.println (x [1]); // java.lang.nullpointerException}Tableau:
Quand utiliser les tableaux: Lorsqu'il y a de nombreux éléments, afin de faciliter le fonctionnement de ces tableaux, le stockage temporaire sera effectué en premier et le conteneur utilisé est un tableau.
Caractéristiques:
La longueur du tableau est fixe.
8. Opérations communes des tableaux
1: Cas:
Un tableau élimine la valeur maximale
/ * Définissez une fonction pour obtenir la valeur maximale:
1. Déterminer le résultat: Type de valeur de retour int
2. Contenu inconnu: la valeur maximale dont le tableau n'est pas déterminé, alors le tableau n'est pas déterminé.
Idées:
1. Définissez une variable et enregistrez les éléments plus grands du tableau.
2. Iréération sur l'ensemble du tableau et comparez chaque élément du tableau avec la variable.
3. Lorsqu'une variable rencontre un élément supérieur à celui-ci, laissez la variable enregistrer la valeur de l'élément. Lorsque la boucle se termine, la valeur maximale est générée.
* / public static int getmax (int [] arr) {// Définissez la variable pour enregistrer une valeur plus grande et l'initialiser à n'importe quel élément du tableau. int max = arr [0]; for (int x = 1; x <arr.length; x ++) {if (arr [x]> max) max = arr [x];} return max;}Deux: tri direct
Cas 2: Trier les tableaux en utilisant le tri direct:
/ *
Sélectionnez Trier.
Comparez les éléments avec un coin à d'autres éléments.
À la première extrémité de la boucle intérieure, la plus grande valeur apparaît à la position de l'angle de tête.
* / public static void selectSort (int [] arr) {for (int x = 0; x <arr.length-1; x ++) {for (int y = x + 1; y <arr.length; y ++) // Pourquoi la valeur d'initialisation de y x + 1? Parce que chaque fois que vous comparez, // est comparé à l'élément suivant marqué sur le coin x. {if (arr [x]> arr [y]) {int temp = arr [x]; arr [x] = arr [y]; arr [y] = temp;}}}}Trois: tri à bulles
/ * Toi bouillonnant. Méthode de comparaison: Comparez deux éléments adjacents. Si les conditions sont remplies, le remplacement de la position sera effectué. Principe: La boucle intérieure se termine une fois, et la plus grande valeur apparaît en position d'angle de queue. * / public static void bubblesort (int [] arr) {for (int x = 0; x <arr.length-1; x ++) {for (int y = 0; y <arr.length-x-1; y ++) // - x: laissez la méta-déductance de chaque participation à la comparaison. // - 1: Évitez les marques d'angle traversant les limites. {if (arr [y]> arr [y + 1]) {int temp = arr [y]; arr [y] = arr [y + 1]; arr [y + 1] = temp;}}}}Quatre: recherche d'un demi-pli (méthode à double particules)
/ * Afin d'améliorer l'efficacité de la recherche, vous pouvez utiliser la méthode de recherche demi-finish. Remarque: cette recherche n'est valable que pour les tableaux commandés. Cette méthode est également devenue une méthode de recherche binaire. * / public static int halfseach (int [] arr, int key) {int min, mid, max; min = 0; max = arr.length-1; mid = (max + min) / 2; while (arr [mid]! = key) {if (key> arr [mid]) min = mid + 1; else if (key <arr [mid]) max = mid - 1; if (min> max) renvoie -1; (max + min) / 2;} retour au milieu;}Cinq: Flip de tableau
/ * L'inversion est en fait le remplacement positionnel des éléments des marques de coin et de queue, puis les marques de coin de la tête augmentent automatiquement. La marque du coin arrière est auto-déceinte. Lorsque la marque d'angle de tête est <marque d'angle de queue, l'action de substitution peut être effectuée. * / public static void reversEARRAY (int [] arr) {for (int start = 0, end = arr.length-1; start <end; start ++, end -) {swap (arr, start, end);}} // effectuer le déplacement positionnel des éléments du tableau. Swap de void statique public (int [] arr, int a, int b) {int temp = arr [a]; arr [a] = arr [b]; arr [b] = temp;}11. Répanage bidimensionnel
Utilisation des tableaux
Explication détaillée des tableaux Java
Traversal: toString () Renvoie les éléments du tableau en tant que chaîne
Soi: tri () Commandez le tableau dans l'ordre croissant
Recherche: BinarySearch () recherche l'élément spécifié dans le tableau spécifié, renvoie l'index de l'élément. Si aucun retour n'est trouvé (-insert point-1) Remarque: Lorsque vous utilisez la fonction de recherche, le tableau doit être trié en premier.
Tableau bidimensionnel:
Fumeur:
Je n'ai pas d'argent pour acheter 1 variable
Un peu d'argent est un paquet de variables unidimensionnelles de 20 variables
Terte des packs très riches (tableau bidimensionnel) 2D
Tableau bidimensionnel: Essentiellement, le stockage est un tableau unidimensionnel.
Définition du tableau:
Type de tableau [] [] Nom du tableau = nouveau type de tableau [Nombre du tableau unidimensionnel] [Nombre d'éléments dans chaque tableau unidimensionnel];
Explication détaillée des tableaux Java
Question: Pourquoi A.Length = 3, A [0] .Length = 4?
Explication détaillée des tableaux Java
Initialisation du tableau:
Initialisation statique:
int [][] a = new int[][]{ {12,34,45,89},{34,56,78,10},{1,3,6,4} };
Initialisation dynamique:
Explication détaillée des tableaux Java
Opérations communes pour les tableaux bidimensionnels:
1. Traverser un tableau bidimensionnel
2. Résumer des tableaux bidimensionnels
Classe Demo3 {// Définissez une fonction fonctionnelle qui traverse un réseau bidimensionnel public static void printarr2 (int [] [] a) {// 1. Désassement le tableau bidimensionnel pour (int i = 0; i <a.length; i ++) {// 2. Désassemblez le tableau unique; ) {System.out.print (a [i] [j] + ","); }}} // Définissez une fonction pour calculer la somme d'accumulation d'éléments dans un tableau bidimensionnel public static long getum (int [] [] a) {// 0. Définir une variable de résultat long somme = 0l; // 1. Désasmettez le tableau bidimensionnel pour (int i = 0; i <a.length; i ++) {// 2. Disassement le tableau unidimensionnel pour obtenir des données pour (int j = 0; j <a [i] .length; j ++) {sum + = a [i] [j]; }} RETOUR SUM;} // Statistiques Le nombre d'éléments dans un tableau bidimensionnel public static int getDatacount (int [] [] a) {// 0. Enregistrez le nombre d'éléments int count = 0; // 1. Désasmettez le tableau bidimensionnel pour (int i = 0; i <a.length; i ++) {// 2. Disassement le tableau unidimensionnel pour obtenir des données pour (int j = 0; j <a [i] .length; j ++) {count ++; }} return count;} public static void main (String [] args) {int [] [] a = new int [] [] {{23,4,5}, {2}, {4,5,78,56,90}}; printarr2 (a); System.out.println (); System.out.println ("La somme accumulée est:" + getum (a)); System.out.println ("Nombre statistique d'éléments:" + GetDatacount (a)); System.out.println ("Hello World!");}}}Ce qui précède sont tous les sujets des tableaux Java. Comme vous pouvez le voir, les tableaux Java sont une structure de données très puissante.