Maison > Java > javaDidacticiel > le corps du texte

Exemple d'analyse de la façon d'utiliser les tableaux Java

王林
Libérer: 2023-05-10 17:19:06
avant
1300 Les gens l'ont consulté

1. Préface

Aperçu de l'apprentissage : Au cours des huit premiers jours, nous avons appris les bases de la grammaire, des opérateurs et des expressions, des structures de boucles et des structures de branches. et méthodes d'attributs associées., Carte mémoire du stockage de tableau, erreurs courantes

Objectifs d'apprentissage : Maîtriser les deux méthodes de définition des tableaux, les propriétés associées, comprendre les principes de la mémoire, la résolution des erreurs

2. Définition des tableaux

1. Présentation

Si les notes d'un camarade de classe doivent être stockées, quelle méthode faut-il utiliser ?

Comme nous l'avons appris précédemment, plusieurs variables peuvent être définies pour stocker différents scores. Mais s’il y a plus de 1 000 étudiants, pourquoi ne pas définir plus de 1 000 variables ? Bien sûr que non, cela nécessite l'utilisation de notre tableau.

2. Initialisation statique du tableau

Caractéristiques : attribuez directement des valeurs au tableau lors de la définition du tableau, et le système détermine la longueur du tableau

#🎜 🎜#Format général : #🎜 🎜#

Type de données [] nom du tableau = { élément 1, élément 2, élément 3, … [] array= {1,2,3,4,5};
double[] scores = {88.5, 99.5, 59.5};



3. tableau

Fonctionnalités : Lors de la définition d'un tableau, déterminez le type d'éléments et la longueur du tableau, puis stockez les données

Format général :

#🎜 🎜#

Data type [] array name = nouveau type de données [length];

Par exemple :

int [] array= new int[5];

double[] scores = nouveau double[3];
#🎜🎜 #

Valeur par défaut :


Type de données

#🎜 🎜#Type de définition spécifique

Valeur par défautType de base#🎜 🎜 ##🎜 🎜## 🎜🎜#Type de citation# 🎜🎜#Classe, Interface, Tableau, Chaîne# 🎜🎜#

4. Résumé

  • Les tableaux conviennent à de grandes quantités de données du même type

  • L'initialisation statique convient pour connaître la valeur de l'élément

  • L'initialisation dynamique convient pour ne pas savoir quelles données stocker

3. Propriétés des tableaux

1. Accès

La manière générale d'accéder à un tableau est :

Nom du tableau [index]

Exemple de question :

//静态初始化数组
int [] array= {1,2,3,4,5};
System.out.println(array[0]);//输出 1
System.out.println(array[1]);//输出 2
System.out.println(array[3]);//输出 4
Copier après la connexion

2. length pour obtenir la longueur du tableau.

Exemple de question :

//静态初始化数组
int [] array= {1,2,3,4,5};
System.out.println(array.length);//调用方法,输出长度 5
//最大索引array.length-1
Copier après la connexion

3. Traversal

Traversal accède aux éléments d'un tableau un par un. Il est principalement utilisé dans les statistiques de recherche et de données...

Nous avons déjà appris les structures de boucles et les structures de branches. utiliser la boucle For Traverser un tableau

Exemple de question :

Étant donné les éléments {10,8,9,4,5,6,8,71,2,3,9,99}, utilisez un tableau statique pour stocker et afficher les éléments supérieur à 5 dans le tableau ?

Implémentation du codage :

//静态初始化数组
int [] array= {10,8,9,4,5,6,8,71,2,3,9,99};
for(int i=0;i<array.length;i++)
{
	if(array[i]>5)
		System.out.println(array[i]);
}
Copier après la connexion

Résultat de sortie :

10 8 9 6 8 71 9 99

4. Carte mémoire

Exemple danalyse de la façon dutiliser les tableaux Java

    Java doit allouer de l'espace dans la mémoire lorsque le programme est courir. L'espace est divisé en différentes zones.
  • Mémoire de pile : stocke les variables locales et disparaît immédiatement après utilisation
  • Mémoire tas : stocke le nouveau contenu (objets, entités), l'adresse est recyclée lorsque le ramasse-miettes est inactif
  • 1. graph

Ce qui suit crée le code du tableau pour implémenter son graphe de relation mémoire

Implémentation du codage :

//动态初始化数组
int [] arr=new int[3];
System.out.println(arr);
System.out.println(arr[0]);
System.out.println(arr[1]);
System.out.println(arr[2]);
//修改值
arr[0]=100;
arr[2]=200;
System.out.println(arr);
System.out.println(arr[0]);
System.out.println(arr[1]);
System.out.println(arr[2]);
Copier après la connexion

Résultat de sortie :

[I@15db9742
0

0
0
[I@15db9742
100
0 200


Explication du principe :

Exemple danalyse de la façon dutiliser les tableaux Java

L'initialisation dynamique génère d'abord une nouvelle et une valeur d'adresse arr dans la mémoire du tas, en fonction des résultats du compilateur, supposons 001 ici. En raison de l'initialisation dynamique, chaque élément a une valeur initiale. Pour plus de détails, voir le tableau ci-dessus. Lorsque nous produisons des éléments, nous accédons d'abord à l'adresse du nom du tableau, accédons à l'indice de mémoire du tas, puis générons la valeur de l'élément.
  • Modifier la valeur du tableau. Le processus est le même que pour la visualiser, sauf qu'il y a une étape supplémentaire dans le processus de modification, comme indiqué ci-dessous :

2. Exemple danalyse de la façon dutiliser les tableaux Java

Matrices multiples et mémoire à matrice unique Les principes d'utilisation sont les mêmes, je n'entrerai donc pas dans les détails ici.

3. Les tableaux pointent vers la même mémoire

Exemple danalyse de la façon dutiliser les tableaux JavaSi nous modifions les valeurs d'adresse des deux tableaux pour qu'elles soient identiques, à quoi ressemblera le résultat modifié, comme indiqué dans le code ci-dessous.

Implémentation de l'encodage :

//动态初始化数组
int [] arr=new int[3];
arr[0]=100;
arr[1]=200;
arr[2]=300;
System.out.println(arr);
System.out.println(arr[0]);
System.out.println(arr[1]);
System.out.println(arr[2]);
int [] arr2=arr;
arr2[0]=111;
arr2[1]=222;
arr2[2]=333;
System.out.println(arr);
System.out.println(arr[0]);
System.out.println(arr2);
System.out.println(arr2[0]);
Copier après la connexion

Résultat de sortie :

[I@15db9742

100

200

300

[I@15db9742
111

[I@15db9742
111


Explication du principe :


Le L'adresse d'un tableau dans la mémoire tas est 001, et l'adresse du deuxième tableau est également 001, donc modifier la valeur du deuxième tableau est en fait la même mémoire de tableau. La valeur du premier tableau changera également en conséquence, et les résultats sont les suivants :

Exemple danalyse de la façon dutiliser les tableaux Java

5. Foire aux questions

1. Index hors limites

//静态初始化数组
int [] array= {1,2,3};
System.out.println(array[3]);
Copier après la connexion
Exemple danalyse de la façon dutiliser les tableaux Java

Une fois le code ci-dessus exécuté, ce qui suit. une exception d'erreur apparaîtra :

    Exception dans le fil "main" java.lang.ArrayIndexOutOfBoundsException : 3
  • Explication : Nous avons donné statiquement 3 nombres au tableau initial et l'index maximum est 2. Lorsque nous accédons à 3, un l'erreur sera signalée
  • 2. Exception de pointeur nul
  • //动态初始化数组
    int [] array= new int[3];
    array=null;
    System.out.println(array[0]);
    Copier après la connexion

    Après l'exécution du code ci-dessus, l'exception d'erreur suivante apparaîtra :

      Exception dans le fil "main" java.lang.NullPointerException
    • Explication : Nous définissons le tableau sur null , ce qui fait que le tableau consulté ne pointe pas vers les données dans la mémoire tas
byte, short, char , entier, long 🎜#0.0
boolean

false

null

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:yisu.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!