簡體   English   中英

為什么我不能在java中復制數組的一部分?

[英]Why can't I copy a section of an array in java?

我是java的新手,但之前已經用其他語言做過一些編程。 我有一個我聲明的數組。 這個是基本設備,每個basicSimple *都已在前面正確聲明:

//Creating template...
Item[] basicSet = new Item[15];
basicSet [0] = basicSimpleShoes;
basicSet [2] = basicSimplePants;
basicSet [4] = basicSimpleShirt;
basicSet [6] = basicSimpleGloves;

我正在嘗試將數組復制到其他一些數組,每個數組都有一種可能的格式,其中一種看起來像這樣:

//Strongarm set...
Item[] strongarmBeginnerSet = new Item[15];
strongarmBeginnerSet [0,6] = basicSet[0,6];
strongarmBeginnerSet [9] = basicSimpleShortsword;
strongarmBeginnerSet [10] = basicSimpleShield;

同樣,basicSimple * Items在之前正確聲明。 我繼續得到一個錯誤,一個關於缺少結束括號的東西,但我找不到它的位置。 我是否必須單獨聲明每個部分,或者是否有一個我不知道這個場景的功能?

這根本不適用於Java,其他編程語言(比如Python)的切片表示法存在,但Java不存在:

strongarmBeginnerSet[0,6] = basicSet[0,6]; // compiler reports a syntax error!

您必須依次復制每個元素(我假設您打算復制到包含位於索引6的第七個元素):

for (int i = 0; i < 7; i++)
    strongarmBeginnerSet[i] = basicSet[i];

或者,使用System.arraycopy()

System.arraycopy(basicSet, 0, strongarmBeginnerSet, 0, 7);

strongarmBeginnerSet [0,6] = basicSet[0,6]; 在Java中不是有效的語法。 您將需要使用for循環。

strongarmBeginnerSet [0,6] = basicSet[0,6]; 是Java的無效語法。

您可以使用System.arraycopy來實現相同的結果......

就像是...

System.arraycopy(basicSet, 0, strongarmBeginnerSet, 0, 6);

例如...

要復制數組的一部分,請使用:

strongarmBeginnerSet [6] = Arrays.asList(basicSet).subList(0,7).toArray();

暫無
暫無

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

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