簡體   English   中英

在數組中重新分配值的簡單方法

[英]Simple way to re-assign values in an array

我在重新分配數組中的值時遇到問題。

    public static void main(String[] {

            int[] arrayOfIntegers = new int[4];
            arrayOfIntegers[0] = 11;
            arrayOfIntegers[1] = 12;
            arrayOfIntegers[2] = 13;
            arrayOfIntegers[3] = 14;

            arrayOfIntegers = {11,12,15,17};

    }

為什么我無法以我嘗試過的方式重新分配值? 如果我做不到,為什么我做不到?

為什么我無法以我嘗試過的方式重新分配值? 如果我做不到,為什么我做不到?

因為 Java 不像其他一些語言那樣具有解構賦值

您的選擇是:

  1. 為數組變量分配一個數組,如 Rohit 和 Kayaman 所示,但這不是您所要求的。 你說你想分配給元素。 如果將新數組分配給ArrayOfIntegers ,則在不同變量或成員中引用舊數組的任何其他內容仍將引用舊數組。

  2. 使用System.arraycopy ,但它涉及創建一個臨時數組:

     System.arraycopy(new int[]{11,12,15,17}, 0, ArrayOfIntegers, 0, ArrayOfIntegers.length);

System.arraycopy會將元素復制到現有數組中。

您需要提供數組的類型。 用這個:

arrayOfIntegers = new int[] {11,12,15,17};

JLS 第 10.6 節

可以在聲明(第 8.3 節、第 9.3 節、第 14.4 節)中或作為數組創建表達式(第 15.10 節)的一部分指定數組初始值設定項,以創建數組並提供一些初始值。

如果您嘗試在某個范圍內重新分配數組元素,則無法通過直接分配來實現。 您需要單獨為索引分配值,或者使用@TJCrowder 在他的回答中給出的方式。

正確的語法是:

arrayOfIntegers = new int[]{11,12,15,17};

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM