Maison > Java > Javacommencer > le corps du texte

Comment copier un tableau en Java

王林
Libérer: 2020-10-19 16:52:37
avant
2635 Les gens l'ont consulté

Comment copier un tableau en Java

1. Les longueurs des tableaux sont égales

Supposons que nums et nums1 sont deux tableaux de longueur égale.

(Tutoriel recommandé : cours Java)

1.1 Utilisez nums = nums1;

avant l'affectation

Comment copier un tableau en Java

Après l'affectation

Comment copier un tableau en Java

Lorsque nums est créé, une zone mémoire est créée dans le tas pour le stockage, et nums pointe vers cette adresse mémoire A. Une fois nums1 créé, il pointe vers B.

Maintenant, laissez nums = nums1 ; alors l'adresse (ou la référence) de num1 est attribuée à num, donc num pointe également vers B. Les deux tableaux pointent vers la même zone mémoire dans le tas et partagent les données qu’ils contiennent.

1.2, pour la boucle

        for (int i = 0; i < nums1.length; i++){
            nums[i] = nums1[i];
        }
Copier après la connexion

Avant la boucle

Comment copier un tableau en Java

Après la boucle

Comment copier un tableau en Java

Modification réussie du contenu interne du tableau nums sans changer sa référence.

1.3, Classe Arrays

Méthode 1 : Copiez le tableau spécifié à la longueur spécifiée

nums = Arrays.copyOf(nums1,5);
Copier après la connexion

Méthode 2 : Copiez la longueur spécifiée du tableau spécifié

nums = Arrays.copyOfRange(nums1,0,5);
Copier après la connexion

Deux types Le dernier index de la méthode peut être > la longueur du tableau, puis 0 sera ajouté au reste.

Les deux méthodes peuvent copier avec succès le tableau, et nous avons constaté que les numéros du tableau d'origine sont passés de 524 à 526, indiquant que ces deux méthodes de copie créent un nouveau tableau, puis utilisent le tableau sur le côté gauche du signe égal pour pointer vers ce nouveau tableau.

Comment copier un tableau en Java

1.4, méthode System.arraycopy

System.arraycopy(originalArray, 0, targetArray, 0, originalArray.length);
Copier après la connexion

Comment copier un tableau en Java

On voit que cette méthode est similaire à notre boucle for , c'est-à-dire que le contenu du tableau d'origine est directement modifié sans changer la référence.

2. Les longueurs des tableaux ne sont pas égales

赋值法成功for循环要注意越界问题,会报java.lang.ArrayIndexOutOfBoundsExceptionArrays类法成功注意越界问题,会报java.lang.ArrayIndexOutOfBoundsException

其他:

给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。

   //思路:设置一个index,表示非0数的个数,循环遍历数组,
    // 如果不是0,将非0值移动到第index位置,然后index + 1
    //遍历结束之后,index值表示为非0的个数,再次遍历,从index位置后的位置此时都应该为0
    public void moveZeroes(int[] nums) {
        if (nums == null || nums.length <= 1) {
            return;
        }
        int index = 0;
        for (int i = 0; i < nums.length; i++) {
            if (nums[i] != 0) {
                nums[index] = nums[i];
                index++;
            }
        }

        for (int i = index; i < nums.length; i++) {
            nums[i] = 0;
        }
    }
Copier après la connexion

相关推荐:java入门

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:csdn.net
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!