Explication détaillée du tableau Java (bases de Java)

Ce chapitre résume la syntaxe de base des tableaux Java, la partage avec de nouveaux partenaires d'apprentissage et partage de nouvelles connaissances pour progresser ensemble.


I. Introduction

Vérifiez le type de données:

  • (1) Type de base byte short int long float double char boolean
  • (2) Type de référence 类 数组 接口 枚举 注解

  • Variable : Un espace de stockage en mémoire qui stocke des constantes.
  • Caractéristiques : Une variable ne peut stocker qu'une seule donnée, pas plusieurs.

Besoin: des statistiques pour mettre tous les scores java de 30 élèves dans une classe?

  • Solution 1: utilisez le stockage de variables, devez déclarer 30 variables: int java1 = 90; int java2 = 80;
  • Solution 2: utiliser un tableau

2. Tableau

Qu'est-ce qu'un tableau?

  • La combinaison de données, plusieurs données, contient plusieurs données. Un tableau n'est qu'une variable.

Déclaration de tableau et déclaration d'initialisation:

  • Méthode 1 :数据类型 [] 数组名
  • Méthode 2 :数据类型 数组名[]

Initialiser:

  • Le tableau en Java 必须先初始化ne peut être utilisé qu'ultérieurement. La soi-disant initialisation consiste à allouer de l'espace mémoire aux éléments du tableau dans le tableau et à affecter des valeurs initiales à chaque élément du tableau.

Distinguer l'initialisation statique et l'initialisation dynamique

  • Initialisation statique
  • Lors de l'initialisation, le programmeur spécifie la valeur initiale de chaque élément du tableau et le système calcule la longueur du tableau.
语法:数组元素类型[] 数组名 = new 数组元素类型[]{元素0,元素1,	};
可简写为:数组元素类型[] 数组名 = {元素0,元素1,	};
  • Remarque: toute variable doit avoir son propre type de données, arr signifie ici le nom de la variable de tableau, int signifie le type des éléments du tableau, int [] est le type de tableau
  • Remarque: l'initialisation statique abrégée ne peut être effectuée que par une seule instruction et ne peut pas être divisée en deux instructions.
/*
静态初始化:由我们指定元素的初始值,由系统计算长度或者元素的个数
*/
int[] arr = new int[]{1,56,76,87};
int[] arr1 = {1,56,76,87};

String[] arr2 = new String[]{"434","gfg","gjf545"};
String[] arr3 = {"434","gfg","gjf545"};

//Scanner[] arr4 =

char[] arr5 = new char[]{'2','g','*'};
char[] arr5 ={'2','g','*'};

  • Initialisation dynamique
  • Pendant l'initialisation, le programmeur spécifie uniquement la longueur du tableau et le système attribue des valeurs initiales aux éléments du tableau
语法:元素类型[] 数组名 = new 元素类型[元素个数或者数组长度]
  • Le système affecte des règles pour les valeurs initiales comme suit:
  • a. Le type entier est 0
  • b. Le point flottant est de 0,0
  • c. Le type de caractère est «\ u0000» (différentes plates-formes système affichent des résultats différents)
  • d. Le type booléen est faux
  • e. Le type de référence est nul
/*
动态初始化:初始化时由程序员指定数组的长度,系统负责分配元素的初始值
*/
int[] array1 = new int[5];//0

String[] array2 = new String[3];//null 
char[] array3 = new char[10];//\u0000

Remarque: a. Lors de l'initialisation d'un tableau, n'utilisez pas l'initialisation statique et l'initialisation dynamique en même temps, c'est-à-dire ne spécifiez pas la longueur du tableau et affectez une valeur initiale à chaque élément du tableau lors de l'initialisation du tableau.


Trois. L'utilisation de tableaux

(1) Accéder à l'élément spécifié par indice

  • Remarque:
  • ① L'index de tableau Java (indice, index de coin) commence à 0, la longueur maximale de l'indice de tableau est -1
  • ② Ne dépassez pas la plage d'index, si une exception se produit java.lang.ArrayIndexOutOfBoundsException (index hors limite d'exception)
//使用静态初始化的方式定义一个数组
//数组中可以存放重复数据
int[] arr1 = new int[]{2,65,76,83,32,5,5};

//1.访问数组中的元素
//格式:数组名称[下标]	表示获取指定下标所对应的值
//需求:获取下标3对应的元素
int num1 = arr1[3];
System.out.println(num1);//83 
System.out.println(arr1[3]);//83

(2) 2.3.2 Obtenir le nombre d'éléments de tableau

  • En Java, tous les tableaux fournissent une propriété length, à travers laquelle vous pouvez accéder à la longueur du tableau ou au nombre d'éléments dans le tableau
//2.获取数组中的元素个数或者数组的长度
//格式:数组名称.length; int len = arr1.length;
System.out.println("数组arr1的长度为:" + len);

(3) Modifier les valeurs des éléments du tableau

//3.修改数组元素的值int num2 = arr1[6];
System.out.println(num2);//
//格式:数组名称[下标] = 被修改之后的值
//注意:不管是静态初始化还是动态初始化,都可以采用这种方式修改元素的值arr1[6] = 100;
System.out.println(arr1[6]);//100

(4) Parcourez le tableau

  • Accédez tour à tour à chaque élément du tableau pour obtenir la valeur de l'élément correspondant à chaque indice
  • Méthode 1: simple pour boucle
  • Méthode 2: indice ne peut pas être utilisé pour amélioré pour la boucle
public class Demo {

    public static void main(String[] args) {
        int[] arr1 = new int[]{2,65,76,83,32,5,5};
        //4.遍历数组
        int n0 = arr1[0];
        int n1 = arr1[1];
        int n2 = arr1[2];
        int n3 = arr1[3];
        int n4 = arr1[4];
        int n5 = arr1[5];
        int n6 = arr1[6];
        //1>简单for循环
        //i表示下标,0~arr1.length
        for(int i = 0;i < arr1.length;i++) {
            int n = arr1[i];
            System.out.println(n);
        }
      /*
         2>增强for循环【foreach】JDK1.5之后新增的
       优点:用于遍历数组和集合,无需通过数组下标,就可以直接访问数组或者集合中的元素 语法:
        for(元素数据类型 变量名:数组名称) { System.out.println(变量名);
      }
      */
       //底层工作原理:根据下标获取数组元素
        for(int num : arr1) {
           System.out.println("增强for循环的结果:" + num);
        }
       /*
        两种遍历方式的选择:不需要知道下标,只需要获取元素值,则采用增强for循环
       */

      //需求:打印下标为偶数的元素值【只能采用简单for循环】
        for(int i = 0;i < arr1.length;i++) {
            if(i % 2 == 0) {
              int n = arr1[i];
              System.out.println(n);
              }
        }
       }   
     }

Exercice de cas: clavier pour saisir le score java de l'élève et enregistrer le score dans le tableau, puis calculer le score total et le score moyen?

public class Demo {
    
    public static void main(String[] args) {
        Scanner input=new Scanner(System.in); 
        System.out.println("请输入班级人数"); 
        int count=input.nextInt();
        int[] score=new int[count];
        for (int i = 0; i < score.length; i++) {
            System.out.println("请输入第"+(i+1)+"个人的java成绩"); 
            score[i]=input.nextInt();
        }
        System.out.println("	");
        int sum=0;//总分
        double avg=0;//平均分
        for (int n : score) {
           sum=sum+n;
         }
       avg=(double)sum/count;       
       System.out.println("总分是:"+sum); 
       System.out.println("平均分是:"+avg);
       }

}

4. Allocation de mémoire de tableau

mémoire java:

  • Pile : 存储基本类型数据et 引用类型的地址, fonctionnalités : avancées et tardives, généralement moins d'espace, accès plus rapide
  • Tas : 存储引用类型数据, Caractéristiques : Espace plus grand et vitesse de stockage relativement lente
  • Zone de méthode : stocker le pool de constantes de chaîne, les données statiques, le code et les métadonnées de classe

Les tableaux sont des types de référence. Les variables de référence de tableau ne sont qu'une référence. Cette variable de référence peut pointer vers n'importe quel espace mémoire valide. Ce n'est que lorsque cette référence pointe vers un espace valide que vous pouvez manipuler les éléments du tableau réel par référence.

Conclusion : la variable de référence du tableau est stockée dans l'espace de pile et les données réelles du tableau sont stockées dans l'espace de tas.

public class Demo {

    public static void main(String[] args) {
        //图1 使用静态初始化的方式初始化一个数组a
        int[] a = {5,7,20};
        System.out.println("a的长度为:" + a.length);//3
        int num =8; 
        System.out.println("num:"+num);

        //图2
        int[] b=new  int[4]; 
        System.out.println("b的长度是:"+b.length);
        b=a;
        System.out.println("b的长度是:"+b.length);
        System.out.println(b);  //输出的是地址值
       }

}

Insérez la description de l'image ici
Insérez la description de l'image ici


Extension: exceptions courantes lors de l'utilisation de tableaux

1> Exception hors limites du tableau: lorsque ArrayIndexOutofBoundsException
apparaît: Cette erreur se produit lorsqu'un indice inexistant est utilisé 0 ~ longueur-1

2> Exception de pointeur nul : NullPointerException
timing: lorsque la variable de référence du tableau est affectée null, cette référence est également utilisée dans le code suivant


  • The best investment is in yourself
    Insérez la description de l'image ici

  • 2020.04.16 记录辰兮的第56篇博客

Publié 61 articles originaux · 631 pouces vers le haut · 80 000 vues

Je suppose que tu aimes

Origine blog.csdn.net/weixin_45393094/article/details/105555593
conseillé
Classement