Heim > Java > JavaErste Schritte > So kopieren Sie ein Array in Java

So kopieren Sie ein Array in Java

王林
Freigeben: 2020-10-19 16:52:37
nach vorne
2719 Leute haben es durchsucht

So kopieren Sie ein Array in Java

1. Array-Längen sind gleich

Angenommen, nums und nums1 sind zwei Arrays gleicher Länge.

(Empfohlenes Tutorial: Java-Kurs)

1.1. Verwenden Sie nums = nums1; der Heap zur Speicherung , nums zeigt auf diese Speicheradresse A. Nachdem nums1 erstellt wurde, zeigt es auf B.

Nun sei nums = nums1; dann wird num die Adresse (oder Referenz) von num1 zugewiesen, sodass num auch auf B zeigt. Beide Arrays verweisen auf denselben Speicherbereich im Heap und teilen die darin enthaltenen Daten.

1.2, for-SchleifeSo kopieren Sie ein Array in Java

        for (int i = 0; i < nums1.length; i++){
            nums[i] = nums1[i];
        }
Nach dem Login kopieren

Vor der Schleife

So kopieren Sie ein Array in Java

Nach der Schleife

hat den internen Inhalt des Nums-Arrays erfolgreich geändert, ohne seine Referenz zu ändern.


1.3, Arrays-Klasse

Methode 1: Kopieren Sie das angegebene Array auf die angegebene LängeSo kopieren Sie ein Array in Java

nums = Arrays.copyOf(nums1,5);
Nach dem Login kopieren

Methode 2: Kopieren Sie die angegebene Länge des angegebenen Arrays

nums = Arrays.copyOfRange(nums1,0,5);
Nach dem Login kopieren

Der endgültige Index beider Methoden kann > die Länge des Arrays sein , und dann wird der Rest 0 addieren.

So kopieren Sie ein Array in JavaBeide Methoden können das Array erfolgreich kopieren, und wir haben festgestellt, dass sich die ursprüngliche Array-Nummer von 524 auf 526 geändert hat, was darauf hinweist, dass diese beiden Kopiermethoden ein neues Array erstellen und dann das Array auf der linken Seite des Gleichheitszeichens verwenden, um zu zeigen zum neuen Array.

1.4, System.arraycopy-Methode

System.arraycopy(originalArray, 0, targetArray, 0, originalArray.length);
Nach dem Login kopieren

Es ist ersichtlich, dass diese Methode unserer for-Schleife ähnelt, die den Inhalt des ursprünglichen Arrays direkt ändert, ohne die Referenz zu ändern.

2. Array-Längen sind nicht gleich

赋值法成功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;
        }
    }
Nach dem Login kopieren

相关推荐:java入门

Das obige ist der detaillierte Inhalt vonSo kopieren Sie ein Array in Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:csdn.net
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage